+------------+------------+-------------+-------------+
| id | keyword2 | keyword1 | Relevance1 |
+------------+------------+-------------+-------------+
| 1 | B,C,D | A,B,C | 0,1213 |
+------------+------------+-------------+-------------+
| 2 | B,C,D | B,A,F ! 0,01234 |
+------------+------------+-------------+-------------+
我想要的是在DialogBox内的所有文本视图上都有一个监听器,这样每当用户按下这些视图中的任何一个时,都会隐含textview的颜色。就像在笔记应用程序中一样,可以选择主题颜色。
我无法做到这一点。请告诉我正确的方法。
答案 0 :(得分:0)
你可以像这样设置点击监听器..
((TextView)v.findViewById(R.id.first_box)).setOnClick....
依旧......
答案 1 :(得分:0)
我更喜欢为每个视图创建一个新的侦听器。大多数情况下,我为此目的创建匿名类,但每隔一段时间一个命名类是合适的,例如当多个视图具有相似的行为时。这是一个例子:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstance) {
setContentView(R.layout.custom_dialog);
TextView first = findViewById(R.id.first_box);
first.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// logic goes here
}
});
}
}
为每个视图冲洗并重复。
请注意,我在示例代码中使用了一个Activity,但同样的原则适用于Fragments。
另外,我建议您使用更多描述性名称而不仅仅是数字。如果在你的名字中使用数字是有意义的,比如在计算器应用程序中,那么你的代码中可能应该有一个Views数组。您甚至可以更进一步,以编程方式创建视图以利用for循环。
答案 2 :(得分:0)
由于您已经夸大了自定义对话框,请按照以下步骤进行操作
1)获取每个文本视图的引用。
2)为每个视图创建一个监听器
3)点击主题时更改主题。
sudo apt-get install build-essential
对其余文本视图执行此操作。
答案 3 :(得分:0)
你的代码应该是这样的, 做出必要的改变。
public class CustomDialog extends DialogFragment {
LayoutInflater inflater;
View v;
TextView text1;
TextView text2;
TextView text3;
TextView text4;
TextView text5;
TextView text6;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
addListenerOnTextView();
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
inflater = getActivity().getLayoutInflater();
v = inflater.inflate(R.layout.custom_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(v);
return builder.create();
}
public void addListenerOnTextView() {
final Context context = this;
text1 = (TextView) findViewById(R.id.first_box);
text1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//Your code for what you want to do goes here
finish();
}
});
}
}
重复文本2的public void addListenerOnTextView() {
构造函数到文本6