如何在多次按钮单击时多次更改TextView?

时间:2012-12-10 14:19:57

标签: android button click textview

我在Android应用程序开发方面有点新鲜,而且我正在开发一款应用程序。我试图在每次用户单击Button(NEXT)时更改TextView,当另一个Button(PREVIOUS)被点击时,我希望它更改回原始TextView。所以基本上我想设置一定数量的TextViews,并能够使用我提到的两个按钮浏览它们。

到目前为止,我只知道如何在Button(NEXT)点击上进行一次TextView更改。我正在使用这段代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.activity_main);

    ImageButton Next = (ImageButton) findViewById(R.id.Next);
    Next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            TextView Text1= (TextView) findViewById(R.id.Text1);
            Text1.setText("New Text");  
        }
    });

注意:按钮“PREVIOUS”尚未包括在内,因为我还不知道如何处理它。

我感觉这个代码只在你希望TextView改变一次时才使用,你需要一个完全不同的方法来让它多次改变。

我希望我能为您提供足够的信息,您愿意帮助我。 提前谢谢!

2 个答案:

答案 0 :(得分:2)

public class MyActivity extends Activity implements View.OnClickListener {

int stringIdList[] = {R.string.text1, R.string.text2, R.string.text3, R.string.text4}
int stringListCounter = 0;
TextView text1;

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   ImageButton next = (ImageButton) findViewById(R.id.Next);
   ImageButton previous = (ImageButton) findViewById(R.id.Previous);
   text1 = (TextView) findViewById(R.id.Text1);
   Next.setOnClickListener(this);
   previous.setOnClickListener(this);
}

@Override
public void onClick(View v) {
  int id = v.getId();

  if(id == R.id.Next && stringListCounter < stringIdList.length - 1) {
    stringListCounter++;
  } else if (id == R.id.Previous && counter > 0) {
    stringListCounter--;
  }

  Text1.setText(stringIdList[stringListCounter]);
}

这样做会将您的活动分配给OnClickListener来处理点击事件。如果按下Next且计数器在数组列表的范围内,则会增加计数器。 previous也是如此。在单击结束时,它会将文本设置为ID。这假设您的字符串位于strings.xml文件中,这是Android规范中推荐的并且是静态的。

答案 1 :(得分:0)

我认为你可以将历史存储为List,并在每个时刻都拥有textview的所有状态。 您只需要按下上一个按钮后从该历史堆栈中获取先前的值。