and*_*ndo 0 android button android-linearlayout
当我点击一个按钮时,确实在LinearLayout中,我在这一行上出现了这个错误:
LinearLayout ll = (LinearLayout) view;
Run Code Online (Sandbox Code Playgroud)
我的方法看起来像这样:
public void adjDoa(final View view) {
final CharSequence[] items = {"Get on with it!", "Doable!", "Maybe, maybe not.", "Unlikely!", "When pigs fly!"};
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(GetItActivity.this);
dialogBuilder.setTitle("Choose doability!");
dialogBuilder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
LinearLayout ll = (LinearLayout) view;
TextView text = (TextView)ll.findViewById(R.id.tViewChDoa);
text.setText(items[which]);
}
});
dialogBuilder.create().show();
}
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
Sim*_*erg 11
虽然它可以像sockeqwe的回答一样简单.如果您已将布局XML的一部分复制/粘贴/移动到XML的另一部分,则有时会发生此错误.如果是这种情况,通过Project - > Clean清理项目将解决该问题.
在这种特殊情况下,你似乎想要按钮的父节点,在这种情况下你需要view.getParent();像这样调用:(这里我将类型转换为ViewGroup而不是LinearLayout,因为父节点的布局确实无关紧要)
ViewGroup ll = (ViewGroup) view.getParent();
Run Code Online (Sandbox Code Playgroud)
如果您只有一个带有id的视图,则在获取该视图之前tViewChDoa不需要LinearLayout获取该视图,如果您在活动中有此代码,那么这将起作用:
TextView text = (TextView) findViewById(R.id.tViewChDoa);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4838 次 |
| 最近记录: |