1

这一直困扰着我,我是初学者,似乎无法弄清楚这一点。这是我的代码:

package com.example.imhungry;

import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;



public class ImHungry extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_im_hungry);

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_im_hungry, menu);
        return true;
    }

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




}

基本上我试图让 wordToDisplay 出现在我的 textView 中,但我不知道该怎么做。

 <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=""
        tools:context=".ImHungry" />

另外,很抱歉问了这么多问题,我是新手。谢谢!

4

3 回答 3

0

要让您的测试出现在 TextView 中,您必须使用 进行设置setText();,所以基本上您必须分配您的 textview id 或标签(添加android:id="@+id/mytextview)然后获取该对象TextView tv = (TextView)findViewById(R.id.mytextview); tv.setText("foo");我还建议您阅读一些有关 android 基础知识的教程 - 会有所帮助

于 2012-08-26T20:43:50.680 回答
0

将 id 添加到 TextView:

   <TextView
    android:id="@+id/text_random_text"
    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=""
    tools:context=".ImHungry" />

在代码中执行以下操作:

在按钮之后添加:

final TextView textView = (TextView) findViewById(R.id.text_random_text);

将 wordToDisplay 设置为 onClick(View v) 方法中的文本

textView.setText(wordToDisplay);
于 2012-08-26T20:45:19.557 回答
0

为了提高效率,试试这个:

public class ImHungry extends Activity {
    Random mRandomGenerator = new Random();
    TextView mTextView;
    String mWordList[] = new String[] { 
        "Mexican", "American", "Barbeque",
        "Chinese", "Indian", "Italian",
        "Thai", "Viatnamese", "Middle Eastern" };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_im_hungry);

        mTextView = (TextView) findViewById(R.id.textView);
        final Button button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
                mTextView.setText(mWordList[mRandomGenerator.nextInt(9)]);
            }
        });
    }
}

您可以删除其余代码。

只需要创建一个随机数对象,如果只使用一次,则不需要将随机整数或对应的字符串保存在局部变量中。但是,如果您想提高可读性,可以将它们保存在局部变量中。

于 2012-08-26T20:49:02.033 回答