这是Avtivity启动模式引起的问题吗??????????

============问题描述============


今天学习Intent时遇到一个问题很是疑惑,问题描述:
先看效果图:



店家按钮会用Intent来启动并传递一个参数"guanguan"给另外一个Activity,启动模式都是采用的默认的standard,界面简单,两个界面的控制代码如下:

mainFrame:

public class MainActivity extends Activity {



	String Tag="MainActivity";

	@Override

	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_main);

		Log.v(Tag, "mainOnCreate");

		Button bt=(Button)findViewById(R.id.button1);

		bt.setOnClickListener(new View.OnClickListener() {

			

			public void onClick(View v) {

				Intent intent=new Intent(getApplicationContext(),TwoActivity.class);

				intent.putExtra("name", "guanguan");

				startActivity(intent);

			}

		});

		//bt.setOnClickListener(l);

	}



	@Override

	public boolean onCreateOptionsMenu(Menu menu) {

		// Inflate the menu; this adds items to the action bar if it is present.

		getMenuInflater().inflate(R.menu.main, menu);

		return true;

	}

	

	public void onResume()

	{

		super.onResume();

		Log.v(Tag, "mainOnResume");		

	}

	public void onPause()

	{

		super.onPause();

		Log.v(Tag, "mainOnPause");		

	}

	public void onStop()

	{

		super.onStop();

		Log.v(Tag, "mainOnstop");

	}

	public void onDestory()

	{

		super.onDestroy();

		Log.v(Tag, "mainonDestory");

	}

	public void onRestart()

	{

		super.onRestart();

		Log.v(Tag, "mainonRestart");

	}

}



另外一个Avtivity代码

public class TwoActivity  extends Activity{

	String Tag="MainActivity";

	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.two_activity);

		

		Log.v(Tag, "TwoOnCreate");

		TextView textview=(TextView)findViewById(R.id.textView2);

		Intent intent=getIntent();

		String name=(String) intent.getCharSequenceExtra("name");

		textview.setText("欢迎你"+name);

		

	}



	@Override

	public boolean onCreateOptionsMenu(Menu menu) {

		getMenuInflater().inflate(R.menu.main, menu);

		return true;

	}

	public void onResume()

	{

		super.onResume();

		Log.v(Tag, "twoOnresume");

	}

	public void onPause()

	{

		super.onPause();

		Log.v(Tag, "twoOnPause");

	}

	public void onStop()

	{

		super.onStop();

		Log.v(Tag, "twoOnstop");

	}

	public void onDestory()

	{

		super.onDestroy();

		Log.v(Tag, "twoonDestory");

	}

	public void onRestart()

	{

		super.onRestart();

		Log.v(Tag, "twoonRestart");

	}

}



问题:
        第一次点击button时参数传过去了。之后,我点击返回键,回到mainFrame,再次点击,回到桌面。我再次启动这个程序,奇怪的是现在直接进入第二个界面,并且参数的值为null了!!!!这是Activity启动模式的问题吗??我查看了日志信息,可惜依然不知道怎么解释,希望大家解答!!小弟初学,还望海涵!

============解决方案1============


可能你在AndroidManifest.xml中把TwoActivity设置为Launcher了。

============解决方案2============


删掉TwoActivity下的
<intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

posted on 2014-11-12 10:46  android基础教程  阅读(138)  评论(0编辑  收藏  举报

导航

我要啦免费统计