动态获取按钮的文本值

时间:2011-11-03 22:15:29

标签: android

我的观点

<Button android:id="@+id/button1" android:text="Text 1"
android:layout_height="wrap_content"
                android:layout_width="fill_parent"></Button>

        <Button android:id="@+id/button2" android:text="Text 2"
android:layout_height="wrap_content"
                android:layout_width="fill_parent"></Button>

        <Button android:id="@+id/button3" android:text="Text 3"
android:layout_height="wrap_content"
                android:layout_width="fill_parent"></Button>

        <Button android:id="@+id/button4" android:text="Text 4"
android:layout_height="wrap_content"
                android:layout_width="fill_parent"></Button> 

我有一定数量的按钮,需要在触摸事件中为您提供文字。

我是怎么做到的?

很多。

编辑:

谢谢大家,这是你的Answers =&gt;的结果。 https://play.google.com/store/apps/details?id=br.com.redrails.torpedos 我的应用:D

4 个答案:

答案 0 :(得分:1)

如果您将所有按钮命名为“button1,button2,button3 ......”,您可以这样做:

for(int i = 1; i <= buttonCount; i++) {
    int id = getResources().getIdentifier("button" + i, "id", getPackageName() );
    findViewById(id).setOnClickListener(this);
}

buttonCount是您拥有的按钮数量。此方法将放在onCreate()

然后为你的onClick:

public void onClick(View v) {
    if (v instanceof TextView) {
        CharSequence text = ((TextView) v).getText();
        // Do fun stuff with text
    }
}

您的活动需要实施OnClickListener

答案 1 :(得分:0)

您可以使用getText()方法获取按钮的文字。

答案 2 :(得分:0)

这是一个完整的例子:

import android.os.Bundle;
import android.widget.Toast;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity implements OnClickListener
{
    private Button btn1, btn2, btn3, btn4; // You can add more if you like

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         btn1 = (Button) findViewByID(R.id.button1);
         btn2 = (Button) findViewByID(R.id.button2);
         btn3 = (Button) findViewByID(R.id.button3);
         btn4 = (Button) findViewByID(R.id.button4);
         // declare the other buttons if any

         btn1.setOnClickListener(this);
         btn2.setOnClickListener(this);
         btn3.setOnClickListener(this);
         btn4.setOnClickListener(this);
         // register the other buttons as well if any
    }

    @Override
    public void onClick(View v)
    {
        String text = ((Button) v).getText();
        Toast.makeText(this, "You clicked " + text , Toast.LENGTH_SHORT).show();
    }
}

答案 3 :(得分:0)

你可以这样做:

Button button4= (Button) findViewById(R.id.button4);
text = button4.getText();