如何获得登录活动只有一次,当我跑第一次,下次不同活动应该
当我运行的应用程序,登录活动应该只来一次第一次和下次,当我打开两个不同的活动应该来基于点击“登录活动”按钮。 在登录活动中,我保留了两个单选按钮,如果我下次启用第一个单选按钮时应该显示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>
意味着我应该在按钮上点击,然后它第一次显示错误,并且它不是runnin – user1083266 2012-04-27 07:54:13
代码中存在很多问题。 (i)当类正在初始化时,你正在定义'int count = 0;'因此,当应用程序重新启动时,你总是会得到count = 0。所以测试将永远不会工作。让我看看更多 – ASceresini 2012-04-27 08:03:08
上面的例子工作。经过测试!不要忘记确保在清单文件中声明了第二个和第三个活动,如果您调用打开活动的意图并且尚未在清单文件中声明它们,则会引发异常。 – ASceresini 2012-04-27 08:46:57
什么错误? – 5hssba 2012-04-27 07:48:29
空指针异常 – user1083266 2012-04-27 07:52:53