1

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

到目前为止,我只知道如何在单击 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");  
        }
    });

注意:尚未包含“上一个”按钮,因为我还不知道如何处理它。

我感觉只有当您希望 TextView 更改一次并且您需要一种完全不同的方法来使其多次更改时才使用此代码。

我希望我为您提供了足够的信息,并且您愿意在这里帮助我。提前致谢!

4

2 回答 2

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]);
}

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

于 2012-12-12T15:01:09.703 回答
0

我认为您可以将历史记录存储为 List 并在每个时刻拥有 textview 的所有状态。您唯一需要做的就是在按下上一个按钮后从此历史堆栈中获取上一个值。

于 2012-12-12T14:45:54.597 回答