首先抱歉英语不好,这里我附上了屏幕截图,我创建了第一行的动态按钮,第二行的按钮是静态的来自xml,我可以成功创建按钮,现在(1)我想要当我单击下面行的任何按钮,当时我想在动态创建的第一个按钮上设置文本,在我的代码中,它设置在最后一个按钮上,(2) 如果第一个按钮有一些文本,则文本将设置为第二个按钮,我正在使用下面的代码。
private Button Dynamic_Button;
layout = (LinearLayout) findViewById(R.id.linear_layout_tags);
for (int i = 1; i < 6; i++) {
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
Dynamic_Button = new Button(this);
Dynamic_Button.setId(i);
final int id_ = Dynamic_Button.getId();
layout.addView(Dynamic_Button, params);
Dynamic_Button = ((Button) findViewById(id_));
Dynamic_Button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Toast.makeText(view.getContext(),
"Button clicked index = " + id_, Toast.LENGTH_SHORT)
.show();
}
});
}
//和下面的代码用于在动态按钮上设置文本
Dynamic_Button.setText(str);
最佳答案
检查此代码 - 经过尝试和测试
public class MainActivity extends Activity {
private Button dynamic_Button;
private LinearLayout layout = null;
private Button add = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout = (LinearLayout) findViewById(R.id.linear_layout_tags);
add = (Button) findViewById(R.id.Add);
for (int i = 1; i < 6; i++) {
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
dynamic_Button = new Button(this);
dynamic_Button.setId(i);
final int id_ = dynamic_Button.getId();
layout.addView(dynamic_Button, params);
dynamic_Button = ((Button) findViewById(id_));
dynamic_Button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Toast.makeText(view.getContext(),
"Button clicked index = " + id_, Toast.LENGTH_SHORT)
.show();
}
});
}
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
for (int i = 1; i < 6; i++)
{
if(((Button)findViewById(i)).getText().toString().trim().length()<=0)
{
((Button)findViewById(i)).setText(""+i);
break;
}
}
}
});
}
}
XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rel_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/linear_layout_tags"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
</LinearLayout>
<LinearLayout
android:id="@+id/linear_static_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linear_layout_tags" >
<Button
android:id="@+id/Add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add" />
</LinearLayout>
</RelativeLayout>
关于android - 如何在android中动态创建的按钮上设置随机文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453049/