我正在使用自定义ListView
与Title
和Subtitle
,您可以在其中阅读该项目的简要说明。
对于列表中的每个项目,我显示AlertDialog
以选择一个选项(每种情况都不同)。选择该选项后,我想更改用户选择的选项的字幕。
这是我尝试过的:
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch(position){
case 0:
final CharSequence[] alertText1 = {"Area 1", "Area 2", "Area 3"};
ventana.setTitle("Choose an Area");
ventana.setItems(alertText1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
TextView subTitulo = (TextView) findViewById(R.id.subTitulo);
subTitulo.setText(alertText1[item]);
}
});
ventana.show();
break;
case 1:
final CharSequence[] alertText2 = {"1", "2", "3", "5", "10", "20", "60"};
ventana.setTitle("Max. duration");
ventana.setItems(alertText2, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
TextView subTitulo = (TextView) findViewById(R.id.subTitulo);
subTitulo.setText(alertText2[item]);
}
});
ventana.show();
break;
case 2:
final CharSequence[] alertText3 = {"3", "5", "10", "20", "30", "60"};
ventana.setTitle("Time between events");
ventana.setItems(alertText3, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
TextView subTitulo = (TextView) findViewById(R.id.subTitulo);
subTitulo.setText(alertText3[item]);
}
});
ventana.show();
break;
对于列表中的第一个项目,它可以正常工作,当我选择一个选项时,字幕会被该选项替换,但是当我在其他2个项目的AlertDialog
中进行选择时,该选项选中替换第一个项目的副标题!
我知道如何解决这个问题?
答案 0 :(得分:4)
由于没有人回答这个问题,我找到了解决方案,我会在这里发布,以帮助其他最终可能遇到同样问题的人:D
我只是从每个案例中删除TextView subTitulo = (TextView) findViewById(R.id.subTitulo);
并在交换机启动之前添加它,但在onClick函数上“获取”视图参数(类型final,因为Eclipse警告我:P):{ {1}}
代码如下所示:
final TextView subTitulo = (TextView) view.findViewById(R.id.subTitulo);