两个在同一个包的Activity,暂且叫做A1,A2
在A2里面有一个按钮,我想通过点击它返回A1.
不能用 startActivity(new Intent(A2.this,A1.class)); 因为这样在生命周期里会调用 onCreate();
我在 A1 的 onCreate() 里面的逻辑不允许我在 A2 里面调用 onCreate(); 求教各位大侠 有没其他的方法!!!
在A2里面有一个按钮,我想通过点击它返回A1.
不能用 startActivity(new Intent(A2.this,A1.class)); 因为这样在生命周期里会调用 onCreate();
我在 A1 的 onCreate() 里面的逻辑不允许我在 A2 里面调用 onCreate(); 求教各位大侠 有没其他的方法!!!
比如:
A1 ONCREATE
A1 ONSTART
A1 ONRESUME...
你接着写。
03-31 10:45:59.284: INFO/Activity(371): FirstActivity-->onStart
03-31 10:45:59.294: INFO/Activity(371): FirstActivity-->onResume//一程序运行03-31 10:47:33.544: INFO/Activity(371): SecondActivity-->onCreate//点进二程序
03-31 10:47:33.544: INFO/Activity(371): SecondActivity-->onStart
03-31 10:47:33.554: INFO/Activity(371): SecondActivity-->onResume
03-31 10:47:34.034: INFO/Activity(371): FirstActivity-->onStop//这里onStop,
通过设置主题theme.Dilog使它成为onPause这里是点击返回
03-31 10:48:23.374: INFO/Activity(371): SecondActivity-->onPause
03-31 10:48:23.544: INFO/Activity(371): FirstActivity-->onRestart
03-31 10:48:23.544: INFO/Activity(371): FirstActivity-->onStart
03-31 10:48:23.544: INFO/Activity(371): FirstActivity-->onResume
03-31 10:48:23.944: INFO/Activity(371): SecondActivity-->onStop
03-31 10:48:23.944: INFO/Activity(371): SecondActivity-->onDestroy我用双向oncreateresult写的。
这是Activity01
public class OptionPage1 extends Activity {
TextView textview;
Button button1;
Button button2;
EditText edittext;
public static final String SETTING_INFOS = "SETTING_Infos";
public static final String CONTENT = "CONTENT"; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.firstpage); textview = (TextView) findViewById(R.id.t1);
button1 = (Button) findViewById(R.id.b1);
button2 = (Button) findViewById(R.id.b2); edittext = (EditText) findViewById(R.id.etext); // 获取一个SharedPreferences对象
SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0);
// 取出保存的CONTENT
String content = settings.getString(CONTENT, "");
edittext.setText(content); textview.setText("``````"); //if (edittext.getText().toString().trim().equals("")) { button1.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) {
// TODO Auto-generated method stub
// LayoutInflater factory =
// LayoutInflater.from(OptionPage1.this);
// final View DialogView =
// factory.inflate(R.layout.liulianglist,null);
AlertDialog dlg = new AlertDialog.Builder(OptionPage1.this)
.setTitle("请选择您的包月套餐").setItems(
new String[] { "```", "```",
"```", "```", "```",
"```", },
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
switch (which) {
case 0:
edittext.setText("10");
break;
case 1:
edittext.setText("20");
break;
case 2:
edittext.setText("30");
break;
case 3:
edittext.setText("50");
break;
case 4:
edittext.setText("100");
break;
case 5:
edittext.setText("300");
break;
}
dialog.dismiss();
}
}).create();
dlg.show();
} });
button2.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) {
// TODO Auto-generated method stub
if (edittext.getText().toString().trim().equals("")) {
Toast toast = Toast.makeText(OptionPage1.this,
"```", Toast.LENGTH_SHORT);
toast.show();
} else {
startActivity(new Intent(OptionPage1.this,
OptionPage2.class)); }
} });
// } else {
// startActivity(new Intent(OptionPage1.this, InternetSteward.class));
// }
} // 将内容保存进去
@Override
protected void onStop() {
super.onStop();
SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0); // 首先获取一个SharedPreferences对象
settings.edit().putString(CONTENT, edittext.getText().toString())
.commit();然后是Activity02:
public class OptionPage2 extends Activity {
OptionPage1 op1;
TextView textview;
Button button1;
Button button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.secondpage);
textview = (TextView) findViewById(R.id.t);
button1 = (Button)findViewById(R.id.tt1);
button2 = (Button)findViewById(R.id.tt2);
textview.setText("······");
button1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v) {
// TODO Auto-generated method stub
}
});
button2.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(OptionPage2.this,InternetSteward.class));
}
});
}
}
我的问题是 自己做个小东西这是两个设置的Activity 设置完成后进入主页面 以后再进的时候直接跳过这两个Activity。 现在的问题是怎样设置 Activity02的button1的监听,点击后要返回Activity01。
要是用Intent肯定不行,因为会重新调用01的onCreate方法,而且我在01中有个判断就是如果edittext不为空就直接跳过01,02这两个设置页面。
onStart-->onResume; Activity02:onStop-->onDestroy.我也搞郁闷了 。到第三个界面,老是异常。你帮看看。public class Activity01 extends Activity
{
TextView textview;
Button button1;
Button button2;
EditText edittext;
public static final String SETTING_INFOS = "SETTING_Infos";
public static final String CONTENT = "CONTENT";
private final static int REQUEST_CODE1=1;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.firstpage);
textview = (TextView) findViewById(R.id.t0);
button1 = (Button) findViewById(R.id.t1);
button2 = (Button) findViewById(R.id.t2);
edittext = (EditText) findViewById(R.id.et);
// 获取一个SharedPreferences对象
SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0);
// 取出保存的CONTENT
String content = settings.getString(CONTENT, "");
edittext.setText(content);
textview.setText("``````");
//if (edittext.getText().toString().trim().equals("")) {
button1.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v) {
// TODO Auto-generated method stub
// LayoutInflater factory =
// LayoutInflater.from(OptionPage1.this);
// final View DialogView =
// factory.inflate(R.layout.liulianglist,null);
AlertDialog dlg = new AlertDialog.Builder(Activity01.this)
.setTitle("请选择您的包月套餐")
.setItems(new String[]{ "```", "```","```","```", "```","```", },
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int which)
{
switch (which)
{
case 0:
edittext.setText("10");
break;
case 1:
edittext.setText("20");
break;
case 2:
edittext.setText("30");
break;
case 3:
edittext.setText("50");
break;
case 4:
edittext.setText("100");
break;
case 5:
edittext.setText("300");
break;
}
dialog.dismiss();
}
}).create();
dlg.show();
}
});
button2.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
if (edittext.getText().toString().trim().equals(""))
{
Toast toast = Toast.makeText(Activity01.this,
"```", Toast.LENGTH_SHORT);
toast.show();
}
else
{
Intent intent=new Intent();
intent.setClass(Activity01.this, Activity02.class);
intent.putExtra("str", "hello");
startActivityForResult(intent, REQUEST_CODE1);
}
}
});
}
// 将内容保存进去
@Override
protected void onPause()
{
super.onPause();
SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0); // 首先获取一个SharedPreferences对象
settings.edit().putString(CONTENT, edittext.getText().toString())
.commit();
} @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==REQUEST_CODE1)
{
if (resultCode==Activity02.RESULT_CODE2)
{
Bundle bundle =data.getExtras();
String string=bundle.getString("BACK");
Toast.makeText(Activity01.this, string, Toast.LENGTH_LONG).show();
}
}
}}public class Activity02 extends Activity
{
Activity01 op1;
TextView textview;
Button button1;
Button button2;
final static int RESULT_CODE2=1;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.secondpage);
textview = (TextView) findViewById(R.id.t);
button1 = (Button)findViewById(R.id.tt1);
button2 = (Button)findViewById(R.id.tt2);
textview.setText("······"); button1.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
Intent intent =new Intent();
intent.putExtra("BACK", "BACK DATA");
setResult(RESULT_CODE2, intent);
Activity02.this.finish();
} });
button2.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
Intent intent =new Intent();
intent.setClass(Activity02.this,InternetSteward.class);
startActivity(intent);
Activity02.this.finish();
}
});
}
}public class InternetSteward extends Activity
{
private WebView m_WebView=null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
m_WebView=(WebView)findViewById(R.id.WebView01);
m_WebView.getSettings().setJavaScriptEnabled(true);
m_WebView.loadUrl("http://www.baidu.com");
WebSettings m_WebSettings=m_WebView.getSettings();
m_WebSettings.setDefaultFontSize(20);
m_WebSettings.setDefaultTextEncodingName(WIFI_SERVICE);
m_WebSettings.setBlockNetworkImage(true);
}
}回头,告诉我。我也不知道这个对不对。我还在Activity02的Button2强加了,finish();