2

ボタンをクリックして、[バージョン情報]ダイアログからメインアクティビティに戻ろうとしています。

public class AboutActivity extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.about);
}

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
    SharedPreferences prefs = getSharedPreferences("com.example.tiocontas",MODE_PRIVATE);
    SharedPreferences.Editor prefsEditor = prefs.edit();
    prefsEditor.putBoolean("FirstTime", false);
    finish();
    //this.onBackPressed();
}
}

私はfinish()とonBackPressed()の両方を試しましたが、結果はありませんでした。何か間違ったことをしていると、誰かが私にヒントを与えることができますか?

4

3 に答える 3

3

私があなたのコードで見ることができることから、あなたはあなたのonClick()メソッドに接続されたボタンを持っていません。これは、xmlまたはプログラムで2つの方法で実行できます。

xmlで

<Button
...
android:onClick="functionName"/>

次に、コードで、xmlで名前を付けた関数を定義します

public void functionName(View v)
{
  // some code
  finish();
}

プログラムで、ボタンを宣言します

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

表示されていない方法でボタンをすでに接続している場合はonClick()、メインのアクティビティを終了している可能性があります。その場合、ボタンをクリックしてメインアクティビティを表示するとどうなるかを説明してください

OnClickListener()のドキュメント

于 2013-02-19T20:58:49.353 に答える
1

btnclickでonBackPressed()関数を呼び出してから、クラスの最後に次のコードを定義できます。

  @Override
    public void onBackPressed() {
        super.onBackPressed();
        Intent intent = new Intent(this, YourActivity.class);
        startActivity(intent);
    }

これがお役に立てば幸いです。

于 2013-02-19T20:57:39.060 に答える
1

すでに終わっているようです。以前のアクティビティ。aboutActiivtyに到達したMainActivityからfinish()を削除します。

于 2013-02-19T20:36:30.713 に答える