-2

我正在开发一个具有下一个/上一个和复制按钮的报价应用程序。

这是代码:

    Button btn1;
     String countires[];
     int i=0;
        /** Called when the activity is first created. */
     @Override
      public void onCreate(Bundle savedInstanceState)
     {
     super.onCreate(savedInstanceState);
         setContentView(R.layout.prob2);

btn1 = (Button) findViewById(R.id.prob2_btn1);

countires = getResources().getStringArray(R.array.country);

for (String string : countires)
{
    Log.i("--: VALUE :--","string = "+string);
}

btn1.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View arg0)
    {
        // TODO Auto-generated method stub
        String  country  = countires[i];
        btn1.setText(country);
        i++;
        if(i==countires.length)
            i=0;
    }
});
}

我需要“上一个”按钮的 onClick 代码才能在 textView 中显示上一个字符串???

4

2 回答 2

4

为您的活动创建一个新成员,例如:

int actual = 0;

然后创建一个“下一步”按钮:

nextButton = (Button) findViewById(...);

nextButton.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View arg0)
    {
        actual = actual < countires.length - 1 ? actual + 1 : actual;
        String  country  = countires[actual];
        btn1.setText(country);
    }
});

上一个按钮也是如此:

prevButton = (Button) findViewById(...);

prevButton.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View arg0)
    {
        actual = actual > 0 ? actual - 1 : actual;
        String  country  = countires[actual];
        btn1.setText(country);
    }
});
于 2012-08-26T21:32:50.567 回答
2

那将是:

// Prev
if ( i > 0 ) {
    i--;
} else {
    i = countires.length - 1;
}
String  country  = countires[i];
btn1.setText(country);

编辑:最有意义的是也更改下一个按钮。因为在下一个方法中,您现在在设置文本后增加 i 。这有点搞砸了逻辑。

// Next
if ( i < countires.length - 1 ) {
    i++;
} else {
    i = 0;
}
String  country  = countires[i];
btn1.setText(country);
于 2012-08-26T21:30:03.810 回答