Android基础问题集

1.错误:Error parsing XML: not well-formed (invalid token)

将类似

<EditText
        android:layout:id="@+id/edtAge"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:text=""
        />

改成

<EditText
        android:id="@+id/edtAge"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:text=""
        />

 或者仔细检查下自己有没有加进去非法字符或者右击选择Source->format,重新排列格式

 

2.错误:Error: No resource found that matches the given name (at 'src' with value'@drawable/XX').

这个需要在项目目录下的res\drawable中添加一个名字为XX的png文件

 

3.错误:The constructor AlertDialog.Builder(new View.OnClickListener(){}) is undefined

将AlertDialog.Builder(XX)中的XX改为程序源码文件名.this.比如我的源码文件是MainActivity.java,那这里就改为AlertDialog.Builder(MainActivity.this)

 

4.错误:OnclickListener cannot be resolved to a type

将类似如下代码

class subListener implements OnclickListener{...}

改成

class subListener implements Button.OnClickListener{...}

 

5.错误:The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (MainActivity.mulListener)

下面定义的各控件的OnClickListener修改正确即可。跟上面错误4会一起出现,错误4修改好之后,该问题也就修改好了。

 

6:错误:在mulListener上出现红叉而且提示错误是The type MainActivity.mulListener must implement the inherited abstract method View.OnClickListener.onClick(View)代码classmulListener implements android.view.View.OnClickListener{...})

这个问题很奇怪,明明自己写的跟自动生成的是一模一样的代码,可是eclipse好像就是不能识别,只能点自动加载方法了。

将鼠标移到mulListener上,在弹出的错误提示框下面点击Add unimplemented methods...,将自己写的操作代码拷贝到自动生成的那个onClick(View v)函数下,删掉自己写的OnClick即可


 7:错误Unable to find explicit activity class

一般出现这个问题是代码中有两个以上的Activity,但是在AndroidMainfest.xml只会存在一个。遇到这个问题时查看AndroidMainfest.xml是否添加了你所有的Activity,没有的话

就把代码中所有的 Activity都添加下,具体操作方式如下(我的代码中是两个activity:com.example.calc跟com.example.calc.result):

AndroidMainfest.xml文件中:

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.calc.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

添加一个activity,修改结果如下:

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.calc.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.calc.result">
            </activity>
    </application>


8:错误:The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (MainActivity)

代码

dig1.setOnClickListener(MainActivity.this);

改成

dig1.setOnClickListener((OnClickListener)MainActivity.this);

这是设置监听器时,需要转换类型

 9:错误:The method OnClick(View) of type MainActivity must override or implement a supertype method

错误出现是

dim.setOnClickListener((OnClickListener) MainActivity.this);//这里设置监听器
//由于是this,所以直接使用OnClick()
@Override
public void OnClick(View v)//OnClick(View v)这里有错,提示前面说的这个错误
{...}

之后修改成下面这样虽然编译可以通过,但是使用android模拟器运行时会出现错误:java.lang.RuntimeException: Unable to start activity ComponentInfo{XXX}: java.lang.ClassCastException:

dim.setOnClickListener((OnClickListener) MainActivity.this);//这里设置监听器,主要是这里转换有问题
public class TEST extends Activity implements OnClickListener {
@Override
public void onClick(View v) 
{...}
}

最后修改成下面这种方式才算是完全改好:

dim = (Button) findViewById(R.id.dim);
dim.setOnClickListener(new View.OnClickListener(){

	@Override
	public void onClick(View v) {
	// TODO Auto-generated method stub
	...	
	}
});	

注意:单个按钮这样写很好,但是如果有多个控件,想在一个事件中处理的话,可以在xml文件中设置OnClick,然后自己写个事件处理。详细参考下面文章。

http://blog.csdn.net/joiningss/article/details/6799907

 

 

 

 

 

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值