onActivityResult не получает данные на Android 1.6

#android #android-intent

#Android #android-намерение

Вопрос:

У меня есть два действия. Действие B будет вызвано действием A следующим образом:

 public void onClick(View v) {
    Intent i = new Intent(SearchViewLevel2.this, SearchViewLevel3.class);
    startActivityForResult(i, 7788);
}
  

В действии B в onCreate() у меня есть setResult(Activity.RESULT_OK, inti) .
Затем я переопределяю BackButton:

 @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
mcontext = getBaseContext();
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if(fa.getCheckedPositions().size() > 0) {
            checked = true;
        }
        inti.putExtra("data", checked);
        inti.putExtra("mypos", thispos);
        return true;
    }
    return false;
}
  

В Activity A у меня есть onActivityResult() вот так:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    mContext = getBaseContext();
    if (requestCode == 7788) {
        if (resultCode == Activity.RESULT_OK) { //until here it comes
            boolean l = data.getBooleanExtra("data", false); 
            // in 1.6 the boolean is false, so it doesn't get any data
            if (l) { 
                CheckBox cb =
                    (CheckBox)fa.getViewAtIndex(
                        data.getIntExtra("mypos", -1)).findViewById(10110);
                cb.setBackgroundResource(R.drawable.selectionpartial);
            }       
        } 
    } 
}
  

Моя проблема в том, что я не получаю никаких данных в Android 1.6, но в более высоких версиях я получаю.

Итак, есть ли какие-либо различия между версиями 1.6 и более поздними версиями в этом коде?

Комментарии:

1. вы проверили с помощью hasExtra(String name) , доставляются ли «данные» намерением?

2. если я проверю с помощью hasExtra("data") , это false

3. Вы уверены, что метод onKeyDown работает так, как ожидалось с 1.6? Возможно, это основная проблема…

4. Может быть проблема, но я не знаю, как ее решить. Я попробовал это с onClick() вместо onKeyDown , и это сработало.