2013-10-24 33 views
1

如何將列表視圖中的選定項目的值或位置傳遞給新活動將使用該值從列表視圖中的數據庫檢索數據(在新活動中)將列表視圖中的位置傳遞給新活動

我有代碼,它的工作原理,但總是通過一個空值的位置已通過。

我的第一個活動代碼:

listView.setOnItemClickListener(new OnItemClickListener() { 

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

      // ListView Clicked item index 
      int itemPosition  = position; 

      // ListView Clicked item value 
      String itemValue = (String) listView.getItemAtPosition(position); 

      // Show Alert HERE THE VALUE IS CORRECT----- 
     //  Toast.makeText(getApplicationContext(), 
     //  "Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG) 
     //  .show(); 
      Intent myIntent = new Intent(view.getContext(), ShowWhereToGo1.class); 
      myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      myIntent.putExtra("id", itemPosition); 
      startActivityForResult(myIntent, 0); 

      } 

    }); 

第二個活動:

  Bundle extras = getIntent().getExtras(); 

     String temp = extras.getString("id"); 
     Toast.makeText(getApplicationContext(), 
         "Position :"+temp , Toast.LENGTH_LONG) 
         .show(); 
    } 

也是我試圖在第二個活動是代碼,但仍然可以通過空值:

Intent in = this.getIntent(); 
    String name = in.getStringExtra("id"); 

      Toast.makeText(getApplicationContext(), 
      "Position :"+name , Toast.LENGTH_LONG) 
      .show(); 

是否有任何其他方式來傳遞和檢索活動之間的值?

回答

3

使用

Bundle extras = getIntent().getExtras(); 
    if (extras != null) 
    String temp = extras.getInt("id"); 

,而不是extras.getString("id")因爲你逝去的ListView從整數單擊

+0

[意向文件(http://developer.android.com/reference/android/content/Intent.html )。你也可能想檢查你的'Flags'。 K可能能夠更好地回答這個問題,但我相信如果你在'addFlags()'後面調用'setFlags()',那麼只會使用'setFlags()'中的'Flags'。 – codeMagic

+0

我怎麼能傳遞字符串本身(選定的項目),並從數據庫中的列表 – user2870902

相關問題