Как передать значение из двух разных активностей в третью?

171
31 мая 2018, 04:50

Допустим, я передаю из активности 1 в активность 3 некоторое значение. Затем я передаю из активности 2 в активность 3 некоторое значение. Каким образом затем я могу получить отдельного значение из активности 1 и отдельно значение из активности 2 в третьей, если код вида Intent intent = getIntent(); проинициализирует переменную intent объектом, полученным из последней (второй) активности?

Передаю из первой активности значение в третью, затем перехожу ко второй активности.

public class TestPageOne extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_page_one);
        ListView spheres = (ListView) findViewById(R.id.list10);
        String[] spheresArray = getResources().getStringArray(R.array.spheres);
        ArrayAdapter<String> adapter = new ArrayAdapter(this,
                R.layout.listviewtext, spheresArray);
        spheres.setAdapter(adapter);
        spheres.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent();
                intent.putExtra("sphere", position);
                setResult(RESULT_OK);
                finish();
            }
        });
    }
    public void oc10(View view) {
        Intent intent = new Intent(TestPageOne.this, TestPageTwo.class);
        startActivity(intent);
        finish();
    }
    @Override
    public void onBackPressed() {
        Intent intent = new Intent(TestPageOne.this, MainActivity.class);
        startActivity(intent);
        finish();
    }
}

Перейдя во вторую активность, передаю из нее другое значение в третью активность, затем перехожу в третью активность.

public class TestPageTwo extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_page_two);
        ListView kinds = (ListView) findViewById(R.id.list20);
        String[] kindsArray = getResources().getStringArray(R.array.kinds);
        ArrayAdapter<String> adapter = new ArrayAdapter(this,
                R.layout.listviewtext, kindsArray);
        kinds.setAdapter(adapter);
        kinds.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent();
                intent.putExtra("kind", position);
                setResult(RESULT_OK);
                finish();
            }
        });
    }
    public void oc20(View view) {
        Intent intent = new Intent(TestPageTwo.this, Result.class);
        startActivity(intent);
        finish();
    }
    @Override
    public void onBackPressed() {
        Intent intent = new Intent(TestPageTwo.this, TestPageOne.class);
        startActivity(intent);
        finish();
    }
}

В третьей активности обрабатываю два полученных значения

public class Result extends AppCompatActivity {
    int sphere, kind;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            int sphere = data.getIntExtra("sphere", 0);
            int kind = data.getIntExtra("kind", 0);
        } else {
            Toast.makeText(this, "Wrong result", Toast.LENGTH_SHORT).show();
        }
    }
    @Override
    public void onBackPressed() {
        Intent intent = new Intent(Result.this, TestPageTwo.class);
        startActivity(intent);
        finish();
    }
}
READ ALSO
POST запрос retrofit

POST запрос retrofit

Столкнулся с проблемой POST запроса, когда сервер посылает 1 строку:

221
Volatile атомарность [дубликат]

Volatile атомарность [дубликат]

На данный вопрос уже ответили:

175
JSF подключение css и font-awesome

JSF подключение css и font-awesome

Всем добрый деньИзучаю JSF, и в ходе построения страницы возникли несколько вопросов,на которые найти какой то правильный ответ не смог

210