Java 每次用户使用textview按下按钮时更改文本
我正在做一个基于事实的申请。我希望它在用户每次按下按钮时都显示新的事实,我还希望当用户退出应用程序并重新启动时,它将从用户正在阅读的相同事实恢复。 帮帮我,伙计们。。。我已经包括了我正在使用的java和xml代码 提前谢谢 我的Java布局Java 每次用户使用textview按下按钮时更改文本,java,android,android-layout,android-studio,textview,Java,Android,Android Layout,Android Studio,Textview,我正在做一个基于事实的申请。我希望它在用户每次按下按钮时都显示新的事实,我还希望当用户退出应用程序并重新启动时,它将从用户正在阅读的相同事实恢复。 帮帮我,伙计们。。。我已经包括了我正在使用的java和xml代码 提前谢谢 我的Java布局 public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) {
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Next(View view) {
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText("Hi");
textView.setText("No One is here to sleep");
textView.setText("This sounds like fun");
textView.setText("Men will be men");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
// present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
// noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Xml:
使用
SharedReferences
SharedPreferences prefs = getSharedPreferences("mySHaredpref", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
boolean isFirst = prefs.getInt("lastFact", 0);
您可以使用共享首选项跟踪用户最后看到的事实。请检查此链接以获得相同的
您需要做的是,在每次单击下一个或上一个按钮时,您必须将事实编号存储在共享首选项中。每次打开应用程序时,加载与SharedReferences中的factnumber相对应的事实。我建议您这样做:
int count=0;
ArrayList<String> msgList = new ArrayList<>();
msgList.add("Hi");
msgList.add("No One is here to sleep");
msgList.add("This sounds like fun");
msgList.add("Men will be men");
根据您的要求,您需要在共享首选项中保存事实,并在用户点击按钮时在文本视图中显示事实。 您还需要从共享首选项中获取事实,并在activity的OnResume()的文本视图中显示
Button btn = (Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// save the facts in shared preferences
// and show the facts on the text view
}
});
和onResume()
如果您想在XML上定义onClick方法,那么请在onClick方法(在XML中定义)上使用onClick Listener。使用数组或数据库保存文本字符串并在每次按下按钮时检索。因此,我应该在string.XML中添加ArrayList?
int count=0;
ArrayList<String> msgList = new ArrayList<>();
msgList.add("Hi");
msgList.add("No One is here to sleep");
msgList.add("This sounds like fun");
msgList.add("Men will be men");
public void Next(View view) {
if(count==msgList.size()){
count=0;
textView.setText(msgList.get(count%msgList.size()));
}else{
textView.setText(msgList.get(count%msgList.size()));
count++;
}
}
Button btn = (Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// save the facts in shared preferences
// and show the facts on the text view
}
});
@Override
protected void onResume() {
super.onResume();
// check the shared preferences for the facts
// If facts is available in shared preferences then show on the
// textview
}