Как правильно обрабатывать несколько кодов запроса в onActivityResult ()? - PullRequest
1 голос
/ 14 июля 2020

У меня есть два действия, и второе действие должно отправить строку текста в соответствующее текстовое представление для действия 1 в зависимости от того, выбираю ли я кнопку 1 или кнопку 2. Я считаю, что мое намерение в launchFoodActivity () в действии 1 неверно запрашивает для 2 запросов одновременно. Как я могу исправить свой код, чтобы каждая строка текста отправлялась в соответствующее текстовое представление в действии 1?

Activity 1

public class MainActivity extends AppCompatActivity {
private TextView mReplyTextView1;
private TextView mReplyTextView2;
public static final int TEXT_REQUEST = 1;
public static final int TEXT_REQUEST2 = 2;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mReplyTextView1 = findViewById(R.id.food_text_1);
    mReplyTextView2 = findViewById(R.id.food_text_2);

}

public void launchFoodActivity(View view) {
    Intent intent = new Intent(this, FoodListActivity.class);
    startActivityForResult(intent, TEXT_REQUEST);
    Intent intent2 = new Intent(this, FoodListActivity.class);
    startActivityForResult(intent2, TEXT_REQUEST2);
}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case 1:
            if (requestCode == 1) {
                if (resultCode == RESULT_OK) {
                    String textFoodReply1 = data.getStringExtra(FoodListActivity.EXTRA_REPLY);
                    mReplyTextView1.setText(textFoodReply1);
                    break;
                }
            }

        case 2:
            if (requestCode == 2) {
                if (resultCode == RESULT_OK) {
                    String textFoodReply2 = data.getStringExtra(FoodListActivity.EXTRA_REPLY);
                    mReplyTextView2.setText(textFoodReply2);
                    break;
            }
         }
    }
}
}

Activity 2

public class FoodListActivity extends AppCompatActivity {
public static final String EXTRA_REPLY = "com.dev20.shoppinglist.extra.REPLY";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_food_list);

}

public void returnFoodItem1(View view) {
    String replyItem1 = getResources().getString(R.string.cheese_text);
    Intent replyIntent = new Intent();
    replyIntent.putExtra(EXTRA_REPLY, replyItem1);
    setResult(RESULT_OK, replyIntent);
    finish();
}

public void returnFoodItem2(View view) {
    String replyItem2 = getResources().getString(R.string.apples_text);
    Intent replyIntent2 = new Intent();
    replyIntent2.putExtra(EXTRA_REPLY, replyItem2);
    setResult(RESULT_OK, replyIntent2);
    finish();
}
}
...