我的观点
<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
答案 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();