-2

我正在尝试从 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=""
        android:textColor="#FF8800"
        android:textSize="30dp"
        tools:context=".ImHungry" />

我正在使用的命令在这里:

final Button button2 = (Button) findViewById(R.id.button2);
            button2.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    String search = R.id.text_random_text.getText().toString(); 
                    Uri uri = Uri.parse("http://www.google.com/#q=" + search); 
                    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
                    startActivity(intent); 

我似乎收到一个错误,指出:Cannot invoke getText() on the original type int

我是新手,所以任何帮助将不胜感激。谢谢!

4

3 回答 3

1

R.id.text_random_text只是您的 TextView 的 int id。

您需要执行以下操作:

public class Blah extends Activity implements OnClickListener {
    TextView tv;

    @Override
    public void onCreate(Bundle b) {
        // blah blah
        tv = (TextView) findViewById(R.id.text_random_text);

         // blah blah

    }

    @Override
    public void onClick(View v) {
        if (v.getId() == yourButtonsID)
        {
            String search = tv.getText().toString();
            // whatever you wanna do
        }
    }
}
于 2012-09-04T02:57:12.070 回答
0

你不能getText()int类型。

你需要做的是做一个TextView变量

TextView random_text = (TextView) findViewById(R.id.text_random_text);

然后放在你的onClickListener地方:

String search = random_text.getText().toString();
于 2012-09-04T02:56:47.140 回答
0

您正在尝试从

R.id.text_random_text 这不过是整数值。要获取TextView的 String ,您必须这样做。

 TextView tv = (TextView) findViewById(R.id.text_random_text)

进而,

 button2.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    String search = tv.getText().toString();
于 2012-09-04T03:06:53.123 回答