bat*_*man 13 android onclicklistener
它应该是直截了当的,但我不确定哪里出了问题.我试着抓住TextViewwith 上的点击:
public void runNextTask(){
final View addView = getLayoutInflater().inflate(R.layout.addnewtracker, null);
final TrackerInfo newInfo = new TrackerInfo();
//set up for model selection
TextView modelTextview = (TextView)addView.findViewById(R.id.modelEdit)
modelTextview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
你的XML TextView是:
<TextView
android:id="@+id/model"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Tracker_model"
android:clickable="true"
android:onClick="onClick"/>
Run Code Online (Sandbox Code Playgroud)
但是当我点击TextView它时,它不会进入onClick()方法.我错过了什么?
谢谢
Rag*_*dan 34
你可以删除这个:
android:onClick="onClick"
Run Code Online (Sandbox Code Playgroud)
或者,删除此:
modelTextview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
Run Code Online (Sandbox Code Playgroud)
有这个:
public void onClick(View v)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
android:onClick="onClick"/> //重命名方法以避免混淆会更好
另外,你有这个:
<TextView
android:id="@+id/model" // id is model
Run Code Online (Sandbox Code Playgroud)
所以初始化你的TextView如下:
TextView modelTextview = (TextView)addView.findViewById(R.id.model);
Run Code Online (Sandbox Code Playgroud)
这一行:android:onClick="onClick"告诉 Android 在 Activity 中查找具有此签名的方法:
public void onClick(View v)
Run Code Online (Sandbox Code Playgroud)
这不是您的意图,因为您已在代码中设置了 OnClickListener,并且尚未在活动中为其创建专用方法。因此,您的选择是要么简单地android:onClick="onClick"从 xml 文件中删除 ,要么删除您创建的 on click 侦听器并将其更改为 onClick 方法(最好将其名称更改为比 onClick 更好的名称...
| 归档时间: |
|
| 查看次数: |
69077 次 |
| 最近记录: |