Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每次用户使用textview按下按钮时更改文本_Java_Android_Android Layout_Android Studio_Textview - Fatal编程技术网

Java 每次用户使用textview按下按钮时更改文本

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) {

我正在做一个基于事实的申请。我希望它在用户每次按下按钮时都显示新的事实,我还希望当用户退出应用程序并重新启动时,它将从用户正在阅读的相同事实恢复。 帮帮我,伙计们。。。我已经包括了我正在使用的java和xml代码 提前谢谢

我的Java布局

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 
}