您的位置:首页 > 移动开发 > Android开发

Android基础问题集

2013-12-18 12:37 183 查看
1.错误:ErrorparsingXML:notwell-formed(invalidtoken)

将类似

<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:Noresourcefoundthatmatchesthegivenname(at'src'withvalue'@drawable/XX').

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

3.错误:TheconstructorAlertDialog.Builder(newView.OnClickListener(){})isundefined

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

4.错误:OnclickListenercannotberesolvedtoatype

将类似如下代码

classsubListenerimplementsOnclickListener{...}

改成

classsubListenerimplementsButton.OnClickListener{...}


5.错误:ThemethodsetOnClickListener(View.OnClickListener)inthetypeViewisnotapplicableforthearguments(MainActivity.mulListener)

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

6:错误:在mulListener上出现红叉而且提示错误是ThetypeMainActivity.mulListenermustimplementtheinheritedabstractmethodView.OnClickListener.onClick(View)(代码classmulListener
implementsandroid.view.View.OnClickListener{...})

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

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

7:错误Unabletofindexplicitactivityclass

一般出现这个问题是代码中有两个以上的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>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid: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>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name="com.example.calc.result">
</activity>
</application>


8:错误:ThemethodsetOnClickListener(View.OnClickListener)inthetypeViewisnotapplicableforthearguments(MainActivity)

代码

dig1.setOnClickListener(MainActivity.this);

改成

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

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

9:错误:ThemethodOnClick(View)oftypeMainActivitymustoverrideorimplementasupertypemethod

错误出现是

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

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

dim.setOnClickListener((OnClickListener)MainActivity.this);//这里设置监听器,主要是这里转换有问题
publicclassTESTextendsActivityimplementsOnClickListener{
@Override
publicvoidonClick(Viewv)
{...}
}

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

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

@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
...
}
});

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

/article/10595662.html


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: