2010-12-12 55 views
1

早上,我很樂意幫助我的具體代碼,但如果您忙於使用putExtra和retrieveRow的任何信息也將是一個很大的幫助。我需要幫助瞭解putExtra並檢索行ID?

我正在開發一個小型的android項目,我遇到了第一個需要將數據從一個活動傳遞到另一個活動的例子,不幸的是我的知識缺乏。我試着看着android記事本的例子,但我越來越混淆,所以我希望有人可以用我自己的代碼向我解釋。

這是我想要做的..我有一個onItemClick監聽器,我已經從sqlite數據庫填充了列表視圖,當它被選中時,我想將行_id與另一列的內容一起傳遞給行(BUDGET_AMOUNT)到另一個類。所以我認爲我需要像下面這樣的東西,但正如你可以看到所有的問題,我真的很困惑如何實現我所需要的東西。

// add an onclicklistener for when an item on the list is pressed 
     incomeView.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
       { 
       Cursor c = ???.retrieveRow(id); 

       Intent keypadIntent = new Intent(view.getContext(), Keypad.class); 
       keypadIntent.putExtra(???._ID, id);//put extra needs work 
       keypadIntent.putExtra(???.BUDGET_AMOUNT, c.getFloat(
         c.getColumnIndexOrThrow(???.BUDGET_AMOUNT))); 
       startActivityForResult (keypadIntent, ???); 


       } 
      }); 

上面的代碼是從我Budget.java類,我已經上傳here。我還有一個名爲Data.java的類,該類擴展了SQLiteOpenHelper和一個名爲DatabaseConstants的類,它只有一大堆用於類別和查詢的字符串變量。感謝您花時間看看或提供建議。

+0

對於putExtra中的第一個參數:您可以使用任何您喜歡的字符串;在你打電話給你的活動中,你會回頭看看你給額外的那個字符串/名字,以便再次閱讀;通過getIntent()。getStringExtra()或getIntExtra()等。 – 2010-12-12 12:43:56

回答

1

看看這是否有幫助。我認爲我的實現與你的實現稍有不同,但是對於類似的功能。

protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    // Get the item that was clicked 

    Intent selectedProjectType = new Intent(); 

    Cursor o = (Cursor) this.getListAdapter().getItem(position); 
    String keyword = o.getString(1); 

    selectedProjectType.putExtra("selectedprojecttype", keyword); 

    setResult(RESULT_OK, selectedProjectType); 
    finish(); 
} 
+0

謝謝!我會看看我可以用你的光標線工作,真的有幫助。 – Holly 2010-12-12 12:44:44