在程序开发中,一般程序第一次运行时都会有用户协议、免责声明等,然后还会有一个下次不再提醒checkbox框,一旦我们勾选了下次运行程序时将不再显示此界面。本篇文章通过一个例子实现了这个效果。
首先,第一个界面
activity_main.xml
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/next_ui"
android:onClick="next_activity"/>
MainActivity.java
判断跳转到哪一个界面,即是否要越过界面2调到界面3
package com.example.nextnotipdemo;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void next_activity(View view)
{
//保存数据
SharedPreferences sharedata = getSharedPreferences(SecondActivity.DATA, 0);
int nData = sharedata.getInt(SecondActivity.CONTENT, SecondActivity.nIsReminder);
if (SecondActivity.REMINDER_YES == nData)
{
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
MainActivity.this.finish();
}
else if (SecondActivity.REMINDER_NO == nData)
{
Intent intent = new Intent(MainActivity.this,ThirdActivity.class);
startActivity(intent);
MainActivity.this.finish();
}
else
{
Toast.makeText(MainActivity.this, "跳转错误", Toast.LENGTH_SHORT).show();
}
}
}界面效果
然后,第二个界面
判断下次启动是否显示
second.xml
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
android:id="@+id/checkbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/next_no_tip"/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/next_ui"
android:onClick="next_activity"/>
SecondActivity.java
package com.example.nextnotipdemo;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
public class SecondActivity extends Activity
{
public static final String DATA = "data";
public static final String CONTENT = "content";
public static int nIsReminder = 1;//是否提醒:0不提醒,1提醒,首次进入需要提醒
public static int REMINDER_NO = 0;
public static int REMINDER_YES = 1;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
//获取CheckBox实例
CheckBox checkBox = (CheckBox)this.findViewById(R.id.checkbox);
//绑定监听器
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
nIsReminder = REMINDER_NO;
}
else
{
nIsReminder = REMINDER_YES;
}
Toast.makeText(SecondActivity.this, isChecked?"选中了":"取消了选中" , Toast.LENGTH_LONG).show();
}
});
}
public void next_activity(View view)
{
//保存数据
SharedPreferences.Editor sharedata = getSharedPreferences(DATA, 0).edit();
sharedata.putInt(CONTENT, nIsReminder);
sharedata.commit();
//跳转界面
Intent intent = new Intent(SecondActivity.this,ThirdActivity.class);
startActivity(intent);
SecondActivity.this.finish();
}
}界面效果
勾选下次不再显示框
最后,第三个界面
third.xml
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/ok"
android:onClick="finish"/>
ThirdActivity.javapackage com.example.nextnotipdemo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
public class ThirdActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.third);
}
public void finish(View view)
{
ThirdActivity.this.finish();
}
}界面效果
关闭程序,再次运行效果
下一个界面
我们发现已经跳过第二个界面,直接来到第三个界面了,这说明我们设置成功了。