0

Android アプリケーションが親アクティビティに移動するためのアップ ボタンを定義したいと考えています。いくつかのリソースから、上ボタンをクリックすると次のコードが見つかりました。

NavUtils.navigateUpFromSameTask(getActivity());

しかし、私には問題があり、私のアクティビティには作成用のデータ (Intent extras) が必要でした。このため、次のコードに置き換えました。

getActivity().finish();

しかし、これは親アクティビティに到達するための正しい方法ではなく、後で実行時エラーに直面する可能性があると感じる人もいます。どうすればいいと思いますか?

4

2 に答える 2

1
  Intent myIntent = new Intent(sourceActivity.this,targetActivity.class);
  myIntent.putExtra("NameKey", yourValue); // for send a Value with a key name. yourValue can be every type value
  startActivity(myIntent);
  this.finish();
  // and for receive value from target activity
  Bundle extraGet = getIntent().getExtras();
  String receiveValue = extraGet.getString("NameKey");

public staticまた、すべてのクラスとアクティビティに使用できる変数を定義することもできます

私はあなたがこれを望んでいると思います:

 Intent intent = NavUtils.getParentActivityIntent(this);
 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 NavUtils.navigateUpTo(this, intent); 
于 2015-10-10T18:07:31.710 に答える
0
//this function can used for every key on Phone that pressed
public boolean onKeyDown(int keyCode, KeyEvent event) {
          if(keyCode==event.KEYCODE_VOLUME_UP){
                    // On Click KEYCODE_VOLUME_UP Commands
                    // here, every code want to execute
                    }
          return super.onKeyDown(keyCode, event);
          }

onCreate での更新(必要な ;-) ):

getActionBar().setDisplayHomeAsUpEnabled(true);

メインクラスで:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        Toast.makeText(getApplicationContext(), "Khosh begzare", Toast.LENGTH_SHORT).show();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
于 2015-10-10T17:21:54.620 に答える