2012-08-26 144 views
1

我想创建一个按钮,它将启动randomGenerator。创建按钮

Random randomGenerator = new Random(); 
    int randomInt = randomGenerator.nextInt(9); 
    String wordList[] = new String[9]; 
    { 
     wordList[0] = "Mexican"; 
     wordList[1] = "American"; 
     wordList[2] = "Barbeque"; 
     wordList[3] = "Chinese"; 
     wordList[4] = "Indian"; 
     wordList[5] = "Italian"; 
     wordList[6] = "Thai"; 
     wordList[7] = "Viatnamese"; 
     wordList[8] = "Middle Eastern"; 

    } 


String wordToDisplay = wordList[randomInt]; 

这是我的布局,我已经创建了我的按钮并标记了它。只是不知道如何从这里开始。

<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" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:padding="@dimen/padding_medium" 
     android:text="@string/hello_world" 

     tools:context=".ImHungry" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:text="@string/button1" /> 

</RelativeLayout> 

谢谢!

回答

0
Button mButton; 
TextView mTextView; 
String wordList[] = new String[9]; 


public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

mButton = (Button)findViewById(R.id.button1); 
mTextView = (TextView) findViewById(R.id.textview1); 
mButton.setOnClickListener(onClick); 


    { 
     wordList[0] = "Mexican"; 
     wordList[1] = "American"; 
     wordList[2] = "Barbeque"; 
     wordList[3] = "Chinese"; 
     wordList[4] = "Indian"; 
     wordList[5] = "Italian"; 
     wordList[6] = "Thai"; 
     wordList[7] = "Viatnamese"; 
     wordList[8] = "Middle Eastern"; 

    } 

    } 



    private View.OnClickListener onClick= new View.OnClickListener() { 
      // @Override 
      public void onClick(View v) { 

      Random randomGenerator = new Random(); 
     int randomInt = randomGenerator.nextInt(9); 
     String wordToDisplay = wordList[randomInt]; 
     mTextView.setText(wordToDisplay); 
     } 

    }; 

注:在你的代码,你的TextView缺少id属性。确保你添加它。

<TextView 
    android:id="textview1" 
... 
+0

“......”应该取代什么? – user1545666

+0

更新了答案。注意:请看看我建议你的教程。 – Swayam

+0

我希望它对你有用。 :) – Swayam

0

如果我有你的权利,你应该添加到您的onCreate()

 final Button button1 = (Button) findViewById(R.id.button1); 
    button1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      Random randomGenerator = new Random(); 
      int randomInt = randomGenerator.nextInt(9); 
      String wordToDisplay = wordList[randomInt]; 

      // display in TextView 
      TextView tv = (TextView) findViewById(R.id.textview1); 
      tv.setText(wordToDisplay); 
     } 
    }); 

并添加android:id="textview1"到您的TextView XML。

+0

谢谢!以及如何将其显示到textview中? – user1545666

+1

你为什么不试试看一些文档并接受这个或其他答案 – Eliezer

+0

Updated!你应该遵循@Eliezer的建议来巩固你的知识:-) – iTurki

0

你可以做这样的事情:

添加android:onClick="randomGenerator"到您的按钮属性。然后在你的活动中。 会生成一个函数,当你的按钮被点击时会被调用。 (我假设你想在点击按钮时执行你的随机生成代码。)

public void randomGenerator(View view){ 

    Random randomGenerator = new Random(); 
    int randomInt = randomGenerator.nextInt(9); 
    String wordList[] = new String[9]; 
    { 
     wordList[0] = "Mexican"; 
     wordList[1] = "American"; 
     wordList[2] = "Barbeque"; 
     wordList[3] = "Chinese"; 
     wordList[4] = "Indian"; 
     wordList[5] = "Italian"; 
     wordList[6] = "Thai"; 
     wordList[7] = "Viatnamese"; 
     wordList[8] = "Middle Eastern"; 

    } 

    String wordToDisplay = wordList[randomInt]; 

} 

希望有帮助。

0

尝试像这样在onCreate方法:

Button btnStart = (Button) findViewById(R.id.button1); 
TextView tv = (TextView) findViewById(R.id.textview1); 

btnStart.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(final View v) { 
     tv.setText(wordToDisplay); 
     } 
    }); 

而且不要忘记设置一个ID在TextView的。即

<TextView 
    android:id="textview1" 
...