gpt4 book ai didi

android - 如何在我第一次摩擦时只获得一次登录 Activity ,下次应该有不同的 Activity

转载 作者:行者123 更新时间:2023-11-29 22:07:56 25 4
gpt4 key购买 nike

当我运行应用程序时,登录 Activity 应该在第一次和下一次只出现一次,当我打开两个不同的 Activity 时,应该基于登录 Activity 中的按钮点击。在登录 Activity 中,我保留了两个单选按钮,如果我下次打开时启用第一个单选按钮,它应该显示 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 行中显示错误。请建议我如何解决这个问题。

最佳答案

我已经更新了我对以下内容的回答。这现在应该适合您。

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>

我已经替换了要在 XML 文件中设置的 onClick 监听器。我发现这更简洁、更容易。

list 文件:

<?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>

关于android - 如何在我第一次摩擦时只获得一次登录 Activity ,下次应该有不同的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com