Отправка данных из одного мероприятия в другое - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу, чтобы содержимое main.Activity переменной индикатора positionstart отправлялось в mainActivity.Я использовал решение "extra", но не работает.

В чем проблема?

    public class Main2Activity extends AppCompatActivity {

private Button imageValidate;
int indicatorPositionStart = 1;

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

imageValidate = findViewById(R.id.buttonValidate);

imageValidate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent intent2 = new Intent(Main2Activity.this, MainActivity.class);
intent2.putExtra("indicatorPositionStartt", indicatorPositionStart );
startActivity(intent2);
}
});

}

    public class MainActivity extends AppCompatActivity{

int id = 0;

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

TextView textView = findViewById(R.id.textView3);

if (id != 0) {
int id = getIntent().getExtras().getInt("indicatorPositionStartt", 0);
String indicatorPositionStart = String.valueOf(id);

textView.setText(indicatorPositionStart);
}
}

}

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

В вашей MainActivity удалите эту проверку if (id !=0 ), потому что действие началось, вы устанавливаете значение id =0, поэтому if (id !=0 ) это, если никогда не верно.

Для отправки данных:

Intent intent = new Intent(this, SecondActivity.class); 
intent.putExtra("arg", YourData); 
startActivity(intent);

Для получения данных:

String data = getIntent().getExtras().getString("arg");

Обновить

удалить if( id != 0) и использовать if(getIntent().hasExtra("indicatorPositionStartt"))

следующим образом:

if (getIntent().hasExtra("indicatorPositionStartt")) {
int id = getIntent().getExtras().getInt("indicatorPositionStartt", 0);
String indicatorPositionStart = String.valueOf(id);

textView.setText(indicatorPositionStart);
}
0 голосов
/ 08 февраля 2019

Проблема заключается в том, что вы проверяете значение до того, как получите их от статистов, посмотрите эти строки во втором упражнении:

// you are using it here, before getting the value
if (id != 0) {
int id = getIntent().getExtras().getInt("indicatorPositionStartt", 0);
String indicatorPositionStart = String.valueOf(id);

textView.setText(indicatorPositionStart);
}
}

Другая проблема в MainActivity заключается в том, что вы не заполняетев поле id.Я исправил это, просто замените его вторым действием:

    public class MainActivity extends AppCompatActivity{

    int id = 0;

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

    TextView textView = findViewById(R.id.textView3);

    // get the value first
    id = getIntent().getExtras().getInt("indicatorPositionStartt", 0);

    // then use it
    if (id != 0) {
        String indicatorPositionStart = String.valueOf(id);
        textView.setText(indicatorPositionStart);
    }
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...