2011-06-06 67 views
0

在我的應用程序中有一個listview。當用戶點擊一個項目時,會出現一個alertdialog。用戶從對話框中選擇項目「刪除」,並從列表視圖中刪除項目。問題是,我的代碼中listview的位置始終爲空,所以remove命令非常奇怪。在下面的代碼中,當用戶在Alert對話框中單擊Delete時,文件的行被讀入一個數組中,並且我想刪除在listview中選擇的項目。爲此,我使用onitemclick()的位置變量。Android listview item position

lv1.setOnItemClickListener(new OnItemClickListener() 
{ 
    @Override 
    public void onItemClick(AdapterView<?> a, View v, final int position, long id) { 

    Object o = lv1.getItemAtPosition(position); 
    keyword = o.toString(); 
    AlertDialog.Builder builder2 = new AlertDialog.Builder(Bind.this); 
     builder2.setTitle("Select"); 
     final CharSequence[] selection2 = select.toArray(new CharSequence[valasztas.size()]); 
     builder2.setItems(selection2, new DialogInterface.OnClickListener() 
     { 
      public void onClick(DialogInterface dialog, int item2) 
      {  
       if (selection2[item2].equals("Delete")) 
       { 
        try { 
         File rootdir = Environment.getExternalStorageDirectory(); 
         File yourFile = new File(rootdir, "tomato50.txt"); 
         FileReader filereader = new FileReader(yourFile); 
          BufferedReader br = new BufferedReader(filereader); 
          String line; 
          while((line = br.readLine()) != null) 
         { 
           assignArrT.add(line); 

         } 
           br.close(); 
        } 
         catch (IOException e) 
         { 
          e.printStackTrace(); 
         } 
       assignArrT.remove(position); //this is null 
+0

assignArrT在該行中爲空,請檢查原因。 – Egor 2011-06-06 17:47:31

回答

0

位置是一個int,它不能爲空。如果您在該行上獲得空指針,則它必須是空的assignArrT。

+0

不,它不是空的。但關鍵字不爲空,只是位置。 – erdomester 2011-06-06 18:04:26

+0

'position'是一個int,它是一個原始類型,根據定義它不能爲null。你是什​​麼意思「它不是空的」?你有什麼確切的問題?請發佈logcat與堆棧跟蹤。 – 2011-06-06 18:06:11