2013-03-07 47 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。