Onlistitemclick不工作

时间:2012-08-19 16:07:52

标签: android arrays listview

我正在将数组加载到listview中,当我单击列表项时,我想在同一活动中的textview中显示该项。该列表当前正在加载,但程序在单击项目时崩溃。有什么想法吗?

import java.util.ArrayList;
import android.app.ListActivity;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class WordList extends ListActivity {
    /**
     * @see android.app.Activity#onCreate(Bundle)
     * 
    */
    //public final static String TERM_EXTRA="com.myapp._word";
    //public final static String DEF_EXTRA="com.myapp._pic";

    TextView selection;
    ArrayList<String> words=new ArrayList<String>();


    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        selection=(TextView)findViewById(R.id.selection);
        Resources res=getResources();
        String[] words = res.getStringArray(R.array.words);
        setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,words));
    }

    public void onListItemClick(ListView parent, View v, int position,long id) {
        selection.setText(words.get(position).toString());
    }
}

1 个答案:

答案 0 :(得分:3)

因为如果你没有将任何对象附加到&#34;单词&#34; words.get(position).toString(),则返回null。这是一个以这种方式声明的ArrayList:

ArrayList<String> words=new ArrayList<String>();

"String[] words"不是您在onListItemClick中使用的内容,但"ArrayList<String> words"是。

编辑:

评论arraylist,并定义&#34; String [] words&#34;在onCreate之外。

//ArrayList<String> words=new ArrayList<String>();
String[] words;

然后在你的onListItemClick;

selection.setText(words[position]);

你很高兴。