更改文本evertime用户使用textview按下按钮

时间:2015-05-11 10:39:30

标签: java android android-layout android-studio textview

我正在制作基于事实的应用程序。我希望每次用户按下按钮时都显示新的事实,我也希望当用户退出应用程序并重新启动它时,它将从用户正在阅读的相同事实中恢复。 帮帮我们...我已经包含了我正在使用的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:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:background="#ff7922ff">

    <TextView android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"
        android:textSize="35dp"
        android:layout_above="@+id/button"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="106dp" />


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Next"
        android:id="@+id/button"
        android:layout_marginBottom="158dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:onClick="Next" />

</RelativeLayout>

5 个答案:

答案 0 :(得分:0)

TextView tv = (TextView)findViewById(R.id.tv);
Button bt = (Button)findViewById(R.id.bt);
bt.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        tv.setText("TEXT");
    }
});

答案 1 :(得分:0)

使用SharedPreferences代替

SharedPreferences prefs = getSharedPreferences("mySHaredpref", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
boolean isFirst = prefs.getInt("lastFact", 0);

答案 2 :(得分:0)

您可以使用“共享首选项”来跟踪用户看到的最后一个事实。请检查此链接是否有相同的How to use SharedPreferences in Android to store, fetch and edit values
您需要做的是,在每次下一次或上一次按钮点击时,您必须将事实编号存储在共享首选项中。每次打开应用程序时,都会加载与共享首选项中的factnumber相对应的事实。

答案 3 :(得分:0)

我建议你这样做:

 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++;
        }
    }

答案 4 :(得分:0)

根据您的要求,您需要将事实保存在共享首选项中,并在用户点击按钮时在TextView中显示事实。 您还需要从共享首选项中获取事实,并在活动的OnResume()中的TextView上显示。

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

@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 
}

如果要在XML上定义onClick方法,则可以在onClick方法上完成onClickListener(在XML中定义)。