Я пытаюсь разработать очень простой код, используя startActivityForResult, и я всегда получаю раздражающую проблему: из основного действия (содержит только «hello word» editText) Я вызываю новое действие, которое содержит только TextView, пустой ListView и ImageButton. Когда я нажимаю на ImageButton, он должен возвращать «ok» внутри намерения моей основной функции и печатать его в «hello word» editText, но ничего не происходит. Я уже прочитал все темы о том, как использовать «StartActivity для результата», но я не нашел ничего полезного. Пожалуйста, помогите мне.startActivityForResult на Android
Мой код ниже:
MainActivity
public class MainActivity extends AppCompatActivity {
TextView hw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hw = (TextView) findViewById(R.id.hw);
hw.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(),DeviceListActivity.class);
int resultCode = -1;
startActivityForResult(intent,resultCode);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
hw.setText(result);
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}
}
DeviceListActivity:
public class DeviceListActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.device_list);
final ImageButton nextBtn = (ImageButton) findViewById(R.id.nextBtn);
nextBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent returnIntent = new Intent();
String result = "Tout va bien!";
returnIntent.putExtra("result",result);
onActivityResult(1,1,returnIntent);
setResult(Activity.RESULT_OK, returnIntent);
finish();
}
});
}
}
попробовать http://www.javatpoint.com/android-startactivityforresult-example –
удалить onActivityResult (1,1, returnIntent); из DeviceListActivity –
Всего 2 вещи достаточно..изменить ** onActivityResult (1,1, returnIntent); ** из DeviceListActivity и заменить ** int resultCode = -1; ** с ** int resultCode = 1; ** в MainActivity –