2011-07-02 122 views
1

我在activity1中有一個ListView,其中有幾項是數據庫中的單詞。用戶在列表視圖中點擊一個項目,它將導航到activity2,在那裏它應該將存儲在數據庫中的單詞的細節顯示爲列字,定義。但屏幕2中顯示的內容取決於屏幕1中點擊了哪些項目。單擊列表訪問數據表單數據庫查看

對於Ex - 用戶在屏幕1中單擊A - 從A開始的單詞出現在屏幕2中。是否有任何方法可以傳遞行ID以便在下一個屏幕可以顯示數據庫中的單詞和定義。

謝謝你在進階.. 代碼的第一個活動:

lv.setOnItemClickListener(新AdapterView.OnItemClickListener(){

 @Override 
     public void onItemClick(AdapterView parent, View v, int position, long id) { 
      // TODO Auto-generated method stub 


      Cursor c = mDictCursor; 
      c.moveToPosition(position); 
      Intent i = new Intent(FirstActivity.this, SecondActivity.class); 
      Bundle bundle=new Bundle(); 
      //intent.putExtra("position",position); 
      bundle.putLong(DBAdapter.KEY_ROWID, id); 
      bundle.putString(DBAdapter.KEY_TITLE, c.getString(
        c.getColumnIndexOrThrow(DBAdapter.KEY_TITLE))); 
      bundle.putString(DBAdapter.KEY_DEFINITION, c.getString(
        c.getColumnIndexOrThrow(DBAdapter.KEY_DEFINITION))); 
      i.putExtras(bundle); 
      startActivity(i); 
     } 

SecondActivity代碼:

捆綁額外= getIntent( ).getExtras();

 mRowId = extras.getLong(DBAdapter.KEY_ROWID); 
     String title = extras.getString(DBAdapter.KEY_TITLE); 
     String body = extras.getString(DBAdapter.KEY_DEFINITION); 


     TextView word = (TextView) findViewById(R.id.word); 
     word.setText(title); 

      TextView definition = (TextView) findViewById(R.id.definition); 
      definition.setText(body); 
     } 

每當我點擊列表視圖項時,它都會顯示對話框以強制關閉。請幫忙...

+0

閱讀關於'意圖'額外。 –

+0

你可以請發佈logcat錯誤。 –

回答

1

你可以在Screen1中使用Intent對象的putExtra(String name,int value)方法(see1)並將意圖對象傳遞給Screen2,在Screen2中使用getIntExtra(String name,int defaultValue)方法Intent對象(見2)。 1.使用 在startActivity屏蔽1 2.使用getIntent((意向意圖)方法)方法在屏幕2得到你在屏幕1

+0

謝謝你的回覆。我使用相同的,但仍然出現錯誤。可能是我以錯誤的方式使用它們。你能否提供我可以參考的任何教程或例子,這將會非常有用。 – sarah

+0

你能提供代碼和錯誤細節嗎? – sunriser

1

我猜你正在尋找類似這樣的東西通過Intent對象。 https://market.android.com/developer?pub=acharya https://market.android.com/details?id=com.acharyaapp.malayalam.aksharam.full (這些都是我的應用程序)

你爲什麼不嘗試使用一個單獨的類來存儲信息。一個意圖可以設置它,另一個意圖可以讀取它。我在我的應用程序中使用了該邏輯。

編輯

public class MySingleton { 
    private static final MySingleton INSTANCE = new MySingleton(); 
    //TODO ... all your variable as public static variables. eg. KEY_TITLE 
    private MySingleton() { } 
    public static MySingleton getInstance() 
      return INSTANCE; 
    } 
} 

內活動,用它們作爲正常的實例。只要確保調用getInstance()而不是構造函數來獲取共享實例。

希望這有助於。

+0

@sm補充。往上看。它是基本的單身人士。沒有什麼花哨。 – GSree