2013-03-07 55 views
0

我正在做一個簡單的應用程序,它有兩個按鈕和一個edittext。當按鈕被點擊時,edittext將顯示我的數據庫的值。我試過這個代碼,但它沒有工作插入數據到EditText

public void onClick(View v) { 
    // TODO Auto-generated method stub 

    if (v == bnt1) { 
    SharedPreferences sharename = PreferenceManager.getDefaultSharedPreferences(this); 
    String na = sharename.getString("thename", "null"); 

    edit.setText(na); 

    } else if (v == bnt2) { 

    SharedPreferences sharedescribed = PreferenceManager.getDefaultSharedPreferences(this); 
    String dess = sharedescribed.getString("thedescribed", "null"); 

    edit.setText(dess); 




} 
} 

請給我看問題。

+2

「沒有工作」怎麼樣?它墜毀?表現出奇怪的行爲?踢你的狗?爆炸?什麼也沒做?它應該做什麼? – Eric 2013-03-07 04:03:31

+0

它是如何「不起作用」的?你是否在xml中聲明瞭'onClick'? – codeMagic 2013-03-07 04:04:15

+0

當我點擊按鈕我的應用程序被迫關閉。 – TranGia 2013-03-07 04:06:54

回答

0

它看起來像你可能沒有一個Button連接到您的onClick()方法,這將導致一個null pointer exception當您嘗試引用v方法內。有不同的方式來實現這個(通過編程或通過XML)。隨着大家展示一下(不重寫onClick()法),它看起來像你想使用XML的方式,這意味着你需要聲明的功能爲您Buttons

<Button 
    android:id="@+id/btn1" 
    android:onClick="onClick" 

然後BTN2這樣做。然後v將參考被點擊的任何一個Button。你也可以做到這一點編程,但設置一個onClickListener

Button btn1 = (Button) findViewById(R.id.btn1); 
btn1.setOnClickListener(new OnClickListener() {   
    @Override 
    public void onClick(View v) 
    { 
     // some code 
    } 
}); 

但你必須做同樣的事情btn2所以,如果你想重用兩個Button當時的第一種方法將是首選相同的功能。

Here is a link to a previous answer of mine convering the same thing

0

使用下面的代碼:

btn1.setOnClickListener(new OnClickListener() {   
      @Override 
      public void onClick(View v) { 
    SharedPreferences sharename = PreferenceManager.getDefaultSharedPreferences(this); 
    String na = sharename.getString("thename", "null"); 
    edit.setText(na); 
     } 
} 

btn2.setOnClickListener(new OnClickListener() {   
      @Override 
      public void onClick(View v) { 
    SharedPreferences sharedescribed = PreferenceManager.getDefaultSharedPreferences(this); 
    String dess = sharedescribed.getString("thedescribed", "null"); 

    edit.setText(dess); 
     } 
} 
0

試試這個代碼:

SharedPreferences sharename = this.getSharedPreferences("sharename", MODE_WORLD_READABLE); 
    String prefName = sharename.getString("thename", 0); 
    edit.setText(prefName); 
0

我猜的異常是空指針異常。在調用getString()方法之前,請檢查您的共享首選項不爲null。