我在eache视图中有对话和文字,我可以点击。 我希望所有的视图都是可点击的,只有文字。
代码:
final Dialog dialog = new Dialog(List_Lists.this);
dialog.setContentView(R.layout.dialog_edit_tables);
dialog.setTitle("Action for " + table);
TextView delete = (TextView) dialog
.findViewById(R.id.tvDeleteTable);
TextView cancel = (TextView) dialog.findViewById(R.id.tvCancel);
OnClickListener l = new OnClickListener() {
@Override
public void onClick(View v) {
dbAdapter = new DBmethods(getApplicationContext());
switch (v.getId()) {
case R.id.tvDeleteTable:
viewListsAdapter.listsV.remove(pos);
dbAdapter.deleteTable(table);
break;
case R.id.tvCancel:
dialog.dismiss();
break;
case R.id.bTableRenameName:
if(dbAdapter.checkTableNameOK(List_Lists.this ,newName.getText().toString())){
viewListsAdapter.listsV.remove(pos);
viewListsAdapter.listsV.add(pos, newName.getText().toString().trim());
dbAdapter.renameTable(table , newName.getText().toString().trim());
renamedialog.dismiss();
};
break;
default:
break;
}
// if button is clicked, close the custom dialog
dialog.dismiss();
lv.invalidateViews();
}
};
delete.setOnClickListener(l);
cancel.setOnClickListener(l);
dialog.show();
}
});
}
正如我所说,如果用户按下视图内的文本,此代码工作正常,但空视图显然不会响应。谢谢!
如果用户按下红点就会激活输入,如果是绿色而不是重复等等...当前状态是你必须按下该字,如果你按下彩色斑点它将什么都不做
答案 0 :(得分:1)
如果我没有错,你需要这个才能使布局可点击
尝试这样的事情 您可以在其上添加OnClickListener:
//onCreate
LinearLayout layout = (LinearLayout) findViewById(R.id.LinearLayout01);
layout.setOnClickListener(yourOnClickListener);
应该有效;)
答案 1 :(得分:0)
创建dialog_edit_tables
在xml中说android:id=@+id\testing
。
现在写这个
LinearLayout yourlayout = (LinearLayout) findViewById(R.id.testing);
yourlayout.setOnClickListener(l);
希望这会有所帮助。
答案 2 :(得分:0)
您尚未显示XML布局,但将可点击文本视图的宽度设置为fill_parent应该有效,同时确保您的父布局也将宽度设置为fill_parent。
onClickListener不基于它基于实际组件的文本,因此看起来好像layout_width属性设置为wrap_content,因此组件只是文本的长度,因此只有文本的位置,是可点击的。希望这是有道理的。
答案 3 :(得分:0)
如果我没有错,请使用listview
或tableview
来显示文字。
你可以做一件事。
将textview layout_width
设为fill_parent
这样你就可以触及你标记的地方了。
希望这会有所帮助。