Android基础问题集

来源:互联网 发布:ubuntu 17.10 下载 编辑:程序博客网 时间:2024/05/22 04:32

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()@Overridepublic 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 {@Overridepublic void onClick(View v) {...}}

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

dim = (Button) findViewById(R.id.dim);dim.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub...
}});

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

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

 

 

 

 

 

 
0 0
原创粉丝点击