#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")
, это false3. Вы уверены, что метод onKeyDown работает так, как ожидалось с 1.6? Возможно, это основная проблема…
4. Может быть проблема, но я не знаю, как ее решить. Я попробовал это с
onClick()
вместоonKeyDown
, и это сработало.