我有一个带有微调器、两个复选框和一个提交按钮的简单安卓页面。屏幕的java代码如下:
import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Intent;
import org.json.JSONException;
import org.json.JSONObject;
public class Main extends AppCompatActivity implements View.OnClickListener{
private Button submit;
private Button edit;
Spinner place;
private CheckBox male;
private CheckBox female;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
submit = (Button) findViewById(R.id.btn_submit);
submit.setOnClickListener(this);
edit = (Button) findViewById(R.id.btn_edit);
edit.setVisibility(View.GONE);
place = (Spinner) findViewById(R.id.place);
place.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapter, View v,
int position, long id) {
// On selecting a spinner item
String item = adapter.getItemAtPosition(position).toString();
str_specimen = item;
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
male = (CheckBox) findViewById(R.id.male);
male.setChecked(false);
female = (CheckBox) findViewById(R.id.female);
female.setChecked(false);
submit.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Main.this,
home.class);
startActivity(intent);
}
});
}
}
我有一个最初不可见的编辑按钮。当我从微调器中选择一个值并在复选框中选中一个值并单击提交按钮时。这些值被发送到数据库,主页
页面将启动。
我想要做的是,当我再次访问主页时,我希望之前选择的值出现并且微调器和复选框不应该是可点击的,编辑按钮应该出现。如果我点击编辑按钮,微调器和复选框应该是可点击的,我应该能够再次提交。
有人能告诉我怎么做吗?
最佳答案
有一个方法,比如 isFirstVisit(),如果这是用户第一次参与该 Activity ,它会返回一个 bool 值:
private boolean isFirstVisit() {
SharedPreferences prefs = getApplicationContext().getSharedPreferences("settings", Context.MODE_PRIVATE);
return prefs.getBoolean("IsFirstVisit", true);
}
在开始调整 UI 之前调用它,然后根据它的值显示/隐藏/选中/取消选中/启用/禁用各种 UI 元素:
boolean firstTime = isFirstVisit();
edit = (Button) findViewById(R.id.btn_edit);
if(firstTime) {
edit.setVisibility(View.GONE);
}
完成后不要忘记将 IsFirstVisit
设置为 false
:
SharedPreferences prefs = getApplicationContext().getSharedPreferences("settings", Context.MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.putBoolean("IsFirstVisit", false);
ed.commit();
关于android - 如何在首次和后续应用程序使用时呈现不同的 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36384363/