我对编程很陌生。
我正在尝试制作一个包含两个活动的简单应用程序,其中第二个活动可以更改第一个活动的文本。我知道它可以使用意图来完成,但我想知道是否有更直接的方法,例如使用第二个活动从第一个活动调用函数?
这是我到目前为止的代码:
MainActivity,其中包含一个 TextView 和一个用于打开第二个活动的按钮:
public class MainActivity extends Activity {
TextView textview;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview = (TextView) findViewById(R.id.et2);
button = (Button) findViewById(R.id.b1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this, ChangeText.class);
startActivity(intent);
}
});
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
public void changetext(String message) {
textview.setText(message);
}
}
第二个活动 ChangeText 包含一个 EditText 和一个按钮,该按钮应该更改 MainActivity 中 TextView 的文本,然后自行完成:
public class ChangeText extends Activity{
EditText edittext;
Button button;
private MainActivity mainclass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.change_text);
edittext = (EditText)findViewById(R.id.et2);
button = (Button)findViewById(R.id.b2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String message = edittext.getText().toString();
mainclass.changetext(message);
finish();
}
});
}
}
如您所见,我试图通过在 MainActivity 中创建一个公共函数来使应用程序工作,该函数接收一个字符串并使用它设置 TextView,然后我从 ChangeText 活动中调用此函数。
问题:它一直在崩溃!谁能告诉我如何才能完成这项工作?