1

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

4

1 回答 1

2

我已经更新了对以下内容的回答。这现在应该对你有用。

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 侦听器。我觉得这更整洁,更容易。

清单文件:

<?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>
于 2012-04-27T07:45:07.557 回答