我正在创建一个简单的应用程序,它有两个按钮和一个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);
}
}
请告诉我问题。
答案 0 :(得分: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);
}
}
答案 1 :(得分:0)
试试这段代码:
SharedPreferences sharename = this.getSharedPreferences("sharename", MODE_WORLD_READABLE);
String prefName = sharename.getString("thename", 0);
edit.setText(prefName);
答案 2 :(得分:0)
我猜Exception是NullPointerException。在调用getString()方法之前,请检查您的共享首选项是否为null。
答案 3 :(得分: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