0

このコードは、最初のアイテムをクリックすると、トーストが位置0を表示します。最初のアイテムをクリックすると、トーストが位置1を表示します。

ListView myListView = (ListView) findViewById(R.id.myListView);
    final EditText myEditText = (EditText) findViewById(R.id.myEditText);

    final ArrayList<String> todoItem = new ArrayList<String>();
    final ArrayAdapter<String> aa;
    aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, todoItem);
    myListView.setAdapter(aa);

    myEditText.setOnKeyListener(new OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if(event.getAction() == KeyEvent.ACTION_DOWN)
                if((keyCode == KeyEvent.KEYCODE_DPAD_CENTER) || keyCode == KeyEvent.KEYCODE_ENTER){
                    todoItem.add(0, myEditText.getText().toString());
                    aa.notifyDataSetChanged();
                    myEditText.setText("");
                    return true;
                }
            return false;
        }
    });

    myListView.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {
            Toast.makeText(getApplicationContext(), "this is to do list " + position, Toast.LENGTH_SHORT).show();
        }
    });
4

2 に答える 2

1

インデックス位置は値 0 から始まるため、位置に 1 を追加するだけです。

 public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
     Toast.makeText(getApplicationContext(), "this is to do list " + (position+1), Toast.LENGTH_SHORT).show();
 }
于 2012-11-01T03:18:15.803 に答える
1

アダプター内のビューの位置は から始まる0ため、位置に 1 を加えて表示します。Toast

myListView.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> arg0, View arg1, int position,
            long arg3) {
        Toast.makeText(getApplicationContext(), "this is to do list " + (position+1), Toast.LENGTH_SHORT).show();
    }
});
于 2012-11-01T03:16:14.977 に答える