当我运行的应用程序,登录活动应该只来过一次了第一次和下一次,当我打开两个不同的活动基础上登录活动点击按钮应该来。 在登录活动我一直在两个单选按钮,如果我能第一个单选按钮下一次当我打开它应该显示MAIN2布局,如果我启用的第二无线电按钮,它应该显示main3布局。
public class Demo1 extends Activity {
Button b1,b2;
int count=0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences settings = this.getSharedPreferences("MyApp",0);
boolean firstrun=settings.getBoolean("firstrun",true);
if (firstrun) {
SharedPreferences.Editor e = settings.edit();
e.putBoolean("firstrun",false);
e.commit();
setContentView(R.layout.main1);
}
else{
test();
}
b1=(Button)findViewById(R.id.button1);
b2=(Button)findViewById(R.id.button2);
b1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
count=1;
Intent intent = new Intent(Demo1.this, ButtonActivate1.class);
startActivity(intent);
}
});
b2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
count=2;
// TODO Auto-generated method stub
Intent intent = new Intent(Demo1.this, ButtonActivate1.class);
startActivity(intent);
}
});
}
private void test() {
// TODO Auto-generated method stub
if(count==1)
{
setContentView(R.layout.main2);
}
if(count==2)
{
setContentView(R.layout.main3);
}
}
}
在当我运行它越来越强制关闭,并显示在该行button.setonclicklistner.please错误这个例子表明我如何来解决这个问题。
我已经更新我的回答如下。 这个现在应该为你工作。
package com.demo1;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
public class Demo1Activity extends Activity {
private int count;
private SharedPreferences settings;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = this.getSharedPreferences("MyApp",0);
count = settings.getInt("count", 0);
selectContentView();
}
public void button1Method(View v) {
setCount(1);
Intent intent = new Intent(Demo1Activity.this, Demo2Activity.class);
startActivity(intent);
}
public void button2Method(View v) {
setCount(2);
Intent intent = new Intent(Demo1Activity.this, Demo3Activity.class);
startActivity(intent);
}
private void selectContentView() {
// TODO Auto-generated method stub
switch (count) {
case 1:
setContentView(R.layout.main2);
break;
case 2:
setContentView(R.layout.main3);
break;
default:
setContentView(R.layout.main1);
}
}
private void setCount(int count) {
SharedPreferences.Editor e = settings.edit();
e.putInt("count",count);
e.commit();
}
}
该main1.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="main1" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:onClick="button1Method"
android:text="button1" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:onClick="button2Method"
android:text="button2" />
</LinearLayout>
</RelativeLayout>
我已经取代了听众的onClick要在XML文件中的设置。 我觉得这更整洁,更容易。
清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.demo1"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".Demo1Activity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Demo2Activity"
android:label="@string/app_name" />
<activity
android:name=".Demo3Activity"
android:label="@string/app_name" />
</application>
</manifest>
文章来源: How to get Login Activity only once when i runned for first time and next time differnt activities should come