NullPointer在设置时单击onlistener

时间:2015-06-08 15:24:51

标签: android

任何人都可以告诉我如何修复以下代码?我正在尝试setonclick listner及其导致null异常

ArrayList<Contact> imageArry = new ArrayList<Contact>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

adapter = new ContactImageAdapter1(this, R.layout.screen_list1,
imageArry);
ListView dataList = (ListView) findViewById(R.id.list);
dataList.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {         
       public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                // Send intent to SingleViewActivity
           Intent i = new Intent(MainActivity.this, SingleViewActivity.class);
           // Pass image index
           i.putExtra("id", position);
           startActivity(i);
           } });

修改

-

当我点击图片时,它不会将我发送到另一个活动

这是我的activity_main.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dip" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:text="Latest" />

        <ListView
            android:id="@+id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dip"

            android:background="#B29090" >
        </ListView>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dip"
            android:gravity="center_vertical"
            android:text="Recomanded" />

        <ListView
            android:id="@+id/list1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dip"
            android:background="#4A9C67" >
        </ListView>
    </LinearLayout>

</ScrollView>

4 个答案:

答案 0 :(得分:1)

您要添加侦听器的变量listView似乎未初始化

答案 1 :(得分:1)

您的listView为dataList而不是listView

你应该写:

dataList.setOnItemClickListener(...)

答案 2 :(得分:1)

ClassGenerator<X, T1, T2, T3>设置为ListView变量onClickListener()。您目前正将其设置为datalist,而该代码中的其他位置不存在。

listView

答案 3 :(得分:0)

将您的代码更改为:

ArrayList<Contact> imageArry = new ArrayList<Contact>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

adapter = new ContactImageAdapter1(this, R.layout.screen_list1,
imageArry);
ListView dataList = (ListView) findViewById(R.id.list);
dataList.setAdapter(adapter);
dataList .setOnItemClickListener(new OnItemClickListener() {         
       public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                // Send intent to SingleViewActivity
           Intent i = new Intent(MainActivity.this, SingleViewActivity.class);
           // Pass image index
           i.putExtra("id", position);
           startActivity(i);
           } });

您的代码很好,您遇到的问题是listview NULLlistview,因为ListView未声明,我猜您错误地输入了{{1} },您只需将listview更改为dataList