我有一个ListView,我为列表中的项目创建了一个custom_row,每行包含2个TextView的名称(textView1和textView2)和一个ImageView,当我点击一个项目时,出现一个有输入的AlertDialog文本在那里,然后确定,取消按钮。 在alertdialog的输入中输入内容并单击确定后,我想从ListView中的项目中单击修改textView2。 我怎么能这样做?
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
TextView tv=new TextView(getApplicationContext());
//Log.i("da","Clicked : "+labelData[position]);
setLabel(labelData[position]);
tv=(TextView)findViewById(R.id.textView2);
tv.setText("das");
}
public void setLabel(String poz){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle("Set "+poz);
alertDialog.setMessage("Enter "+poz);
final EditText input = new EditText(this);
alertDialog.setView(input);
alertDialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
Log.i("da","Clicked : "+value);
}
});
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alertDialog.show();
}
答案 0 :(得分:0)
您正在寻找的是从被调用的活动中获取结果。 总之,以下是在父活动中实现的方法: 1. startActivtyForResult(...) 2. onActivityResult(...)
子活动应该像往常一样完成工作,最后调用: 1. setResult(...) 2.完成()
您可以在这里阅读更多内容: http://saigeethamn.blogspot.com/2009/08/android-developer-tutorial-for_31.html
答案 1 :(得分:0)
单击确定您从Edittext(在您的案例输入中)和String
获得Position
。现在只需在您的数组中设置字符串我的意思是删除您在textview2中的setText中使用的旧字符串。然后添加this.Then adapter.notifyDatasetChanged();.你应该使用动态数组从Alert中删除或添加String值。我的意思是......
List<String> list = new ArrayList<String>();
list.remove(position);
list.set(position,YourAlertTextfiledValue);
list.get(position);