2015-03-31 87 views
-2

這是我的代碼如下列表視圖的Android setonitemclick使得強制關閉

private ListView listview; 

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

     addItemsOnlistv1(); 

    } 


    public void addItemsOnlistv1() { 

     listview = (ListView) findViewById(R.id.listView1); 
     List<String> list = new ArrayList<String>(); 
     list.add("Option 1"); 
     list.add("Option 2"); 

     final int listsize = list.size() - 1; 
     ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, list){ 

       }; 

     listview.setAdapter(dataAdapter); 
     listview.setSelection(listsize); 

     listview.setOnItemClickListener(new OnItemClickListener() { 

       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

        if (listview.getSelectedItem().toString().equals("Option 1")){ 

         Toast.makeText(getApplicationContext(), "Option 1 Selected", Toast.LENGTH_LONG).show(); 
        } 

        if (listview.getSelectedItem().toString().equals("Option 2")){ 

         Toast.makeText(getApplicationContext(), "Option 2 Selected", Toast.LENGTH_LONG).show(); 
        } 
       } 

      }); 

     } 

但是當我選擇的選項,我的應用程序強制關閉,任何人都可以計算出來我想什麼是錯的代碼,包括列表直接在java不使用任何xml或任何支持?

這是我的logcat顯示紅色時,點擊選項

03-31 14:38:56.579:E/AndroidRuntime(23480):致命異常:主要 03-31 14:38:56.579 :E/AndroidRuntime(23480): java.lang.NullPointerException 03-31 14:38:56.579: E/AndroidRuntime(23480):at zzz.zzz.zzz.MainActivity $ 2.onItemClick(MainActivity.java:51) 03-31 14:38:56.579:E/AndroidRuntime(23480):at android.widget.AdapterView.performItemClick(AdapterView.java:301) 03-31 14:38:56.579:E/AndroidRuntime(23480):在 android.widget.AbsListView.performItemClick(AbsListView.java:1280) 03-31 14:38:56.579:E/AndroidRuntime(23480):at android.widget.AbsListView $ PerformClick.run(AbsListView.java:3071) E:// AndroidRuntime(23480):at android.widget.AbsListView $ 1.run(AbsListView.java:3971)03-31 14:38:56.579:E/AndroidRuntime(23480) :at android.os.Handler.handleCallback(Handler.java:615)03-31 14:38:56.579:E/AndroidRuntime(23480):at android.os.Handler.dispatchMessage(Handler.java:92) 03-31 14:38:56.579:E/AndroidRuntime(23480):在 android.os.Looper.loop(Looper.java:137)03-31 14:38:56.579: E/AndroidRuntime(23480):在 android.app.ActivityThread.main(ActivityThread.java:4960)03-31 14:38:56.579:E/AndroidRuntime(23480):at java.lang.reflect.Method.invokeNative(Native Method)03-31 E/AndroidRuntime(23480):at(03)14:38:56.579: E/AndroidRuntime(23480):at java.lang.reflect.Method.invoke(Method.java:511)03-31 14:38:56.579: com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1038) 03-31 14:38:56.579:E/AndroidRuntime(23480):在 com.android.internal.os.ZygoteInit。 main(ZygoteInit.java:805)03-31 14:38:56.579:E/AndroidRuntime(23480):at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)03-31 14 :38 :56.579:E/AndroidRuntime(23480):在 dalvik.system.NativeStart.main(本機方法)

+2

分享您的logcat的錯誤 – Fahim 2015-03-31 09:04:56

+0

你得到的錯誤是什麼? – Shriram 2015-03-31 09:06:01

+0

似乎'listview.getSelectedItem()。toString()'爲空 – 2015-03-31 09:09:07

回答

0

改變這種從

listview.getSelectedItem().toString().equals("Option 1") 

list.get(position).toString().equals("Option 1") 
+0

謝謝它的工作和選擇作爲答案 – androidstarter 2015-03-31 09:22:27