-1

单击该 listItem 时,我想更改 listItem 的值。我提供了下面的代码。

public class MyListDialogExampleActivity extends Activity implements OnItemClickListener {

ListView myListView;
String itemString = null;   
String [] listViewArray = new String[] {"ABC", "DEF", "GHI", "JKL"};
MyArrayAdapter listAdapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    myListView = (ListView) findViewById (R.id.myListView);
    listAdapter = new MyArrayAdapter(this, R.layout.list_row, R.id.list_tv, listViewArray);

    myListView.setAdapter(listAdapter);
    myListView.setOnItemClickListener(this);

}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // TODO Auto-generated method stub
    Log.d("onItemClick", arg2+"");
    String str = showListDialog();

    // i want to change the selected list item with String str

}

public String showListDialog () {
    final CharSequence[] items = {"1", "2", "3", "4"};

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Pick a number");
    builder.setItems(items, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {
            itemString = items[item].toString();
        }
    });
    AlertDialog alert = builder.create();
    alert.show();
    return itemString;

}    
  }
4

2 回答 2

1

您不能在运行时更改数组

所以你必须使用列表(http://developer.android.com/reference/java/util/List.html)

于 2012-08-04T08:22:55.657 回答
1

您需要使用onItemClick上发送给您的参数,以便您获取您使用的数组中的第 i 个元素,更改其值,最后通过notifyDatasetChanged通知适配器数据已更改.

于 2012-08-04T08:28:08.523 回答