Использование activity.finish в кнопке вверх

Я хочу определить кнопку вверх для моего приложения Android, чтобы перейти к родительской активности. Из некоторых ресурсов я нашел этот код при нажатии кнопки вверх:

NavUtils.navigateUpFromSameTask(getActivity());

Но у меня была проблема, и это было связано с тем, что моей деятельности нужны некоторые данные для создания (дополнительные функции Intent), и по этой причине я заменил этот код:

getActivity().finish();

Но некоторые чувства говорят мне, что это неправильный способ достижения родительской активности, и, возможно, я столкнусь с некоторыми ошибками во время выполнения позже. Как вы думаете, что мне делать?

2 ответа

Решение
  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); 
//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);
    }
Другие вопросы по тегам