0

2 つのボタンと 1 つの 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()メソッドを呼び出す前に、nullではない共有設定を確認してください。

于 2013-03-07T04:19:45.390 に答える
0

メソッド内で参照しようとすると、メソッドにButtonアタッチされていないようです。これを実装するには、さまざまな方法があります (プログラムまたは xml を使用)。あなたが示しているもの(メソッドをオーバーライドしていない)では、xmlの方法を使用したいようです。つまり、関数を宣言する必要がありますonClick()null pointer exceptionvonClick()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ため、両方の s に同じ関数を再利用する場合Buttonは、最初の方法が優先されます。

これは、同じことを話している私の以前の回答へのリンクです

于 2013-03-07T04:25:50.107 に答える