0

我正在制作一个简单的应用程序,它有两个按钮和一个编辑文本。单击按钮时,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);




}
}

请告诉我问题。

4

4 回答 4

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);
        }
}
于 2013-03-07T04:13:38.093 回答
0

试试这个代码:

  SharedPreferences sharename = this.getSharedPreferences("sharename", MODE_WORLD_READABLE);
    String prefName = sharename.getString("thename", 0);
    edit.setText(prefName);
于 2013-03-07T04:14:38.520 回答
0

我猜异常是 NullPointerException。请在调用 getString() 方法之前检查您的共享偏好是否为空。

于 2013-03-07T04:19:45.390 回答
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所以如果你想为两个Buttons 重用相同的函数,那么第一种方法将是首选。

这是我之前回答相同问题的链接

于 2013-03-07T04:25:50.107 回答