0

我有大约 150 种不同的文本,当我按下 a 时,我想以随机顺序显示它们Button。每次按 时都会有一个新的Button。我已经弄清楚了这段代码:

   Random myRandom = new Random();
   TextView textblondin = (TextView) findViewById(R.id.textblondin);
   switch(myRandom.nextInt() %3) {
      case 0:
         textblondin.setText("Text 1");
         break;
      case 1:
         textblondin.setText("Text 2");
         break;
      case 2:
     textblondin.setText("Text 3");
     break;
      default:
     break;
   }
}
}   

我可以把它链接到一个Button. 有人知道怎么做吗?

public class Blondinskamt extends Activity {           <----X

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.blondintext);
    View myRandom = findViewById(R.id.myRandom);
    myRandom.setOnClickListener(null);


    myRandom.setOnClickListener(new View.OnClickListener() {
    Random myRandom = new Random();
    TextView textblondin = (TextView) findViewById(R.id.textblondin);    <----X
    switch(myRandom.nextInt() %3) {
    case 0:
        textblondin.setText("Skämt");
        break;
    case 1:
        textblondin.setText("Roligt");
        break;
    case 2:
        textblondin.setText("kul kul kul kul");
        break;
      default:

} }

我在放置“<----X”的地方仍然出现错误我做错了什么?

4

4 回答 4

2

您的 onClickListener 没有可以从中调用的上下文findViewById()。我可能会改为使用您的活动实现点击侦听器的设计模式。阅读http://android-developers.blogspot.com/2009/10/ui-framework-changes-in-android-16.html并搜索“Easier click listeners”。

于 2012-05-03T21:33:25.413 回答
1

您必须向您的按钮添加一个侦听器。

textblondin.setOnClickListener(new View.OnClickListener() {
    ... your code here ...
}
于 2012-05-03T19:55:06.193 回答
0

将所有 150 个字符串存储在 Arraylist 中,并通过随机生成的数字显示文本。

样品;

ArrayList<String> arr_str = new ArrayList<String>();

arr_str.add(String Parameter) // add the all strings in arraylist by using the method.

Random randomGenerator = new Random();
int randomInt = 0;

within  the button onclick listener write the following code.
{
  randomInt = randomGenerator.nextInt(149);  // this will generate random number b/w 0 to 149.
textView.setText(arr_str.get(randomInt));  // you can get the n th number of string stored in the arraylist.
} 
于 2012-05-03T18:46:05.773 回答
0

在 Android Docs 中,您可以找到如何在单击按钮时执行代码。

http://developer.android.com/reference/android/widget/Button.html

于 2012-05-03T18:37:47.677 回答