我想开发一些非常基本的代码,使用startActivityForResult,我总是得到一个恼人的问题:从主要活动(只包含一个“你好单词”editText)我打电话一个新的活动,其中只包含一个TextView,一个空的listView和一个ImageButton。当我点击ImageButton时,它假设在我的mainActivity中意图返回“ok”并将其打印到“hello word”editText中,但没有任何反应。我已经阅读了关于如何使用“StartActivity for result”的所有主题,但我没有发现任何有用的信息。请帮助我。下面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 –
remove onActivityResult(1,1,returnIntent);从DeviceListActivity –
只需要2件事..从DeviceListActivity删除** onActivityResult(1,1,returnIntent); **并将** int resultCode = -1; **与** int resultCode = 1; **在MainActivity –