Android 无法设置动态按钮上的文本
我是android新手。 单击每个按钮,我在表格布局的新行中生成了动态按钮。 但是,每当我点击按钮时,我都会在按钮上显示一些文本。 但除了最后一个按钮外,我无法设置文本(为了清晰起见,请观察图片)。 朋友们,请帮帮我 这就是代码:Android 无法设置动态按钮上的文本,android,button,settext,Android,Button,Settext,我是android新手。 单击每个按钮,我在表格布局的新行中生成了动态按钮。 但是,每当我点击按钮时,我都会在按钮上显示一些文本。 但除了最后一个按钮外,我无法设置文本(为了清晰起见,请观察图片)。 朋友们,请帮帮我 这就是代码: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCre
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button1);
final EditText et=(EditText)findViewById(R.id.wordtxt);
final String a=et.getText().toString();
final char[] arr=a.toCharArray();
// Capture button clicks
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg) {
//Hiding the Key board
InputMethodManager inputManager = (InputMethodManager)
getSystemService(getApplicationContext().INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
final TableLayout table=(TableLayout)findViewById(R.id.tbl);
//Toaster Ex
int wordCount=et.getText().length();
Toast.makeText(getApplicationContext(), "Word Count is"+wordCount, 4000).show();
int k=0;
final TableRow tr;
tr = new TableRow(MainActivity.this);
table.addView(tr);
final Button btn;
btn = new Button(MainActivity.this);
btn.setText("");
btn.setId(k);
tr.addView(btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText et=(EditText)findViewById(R.id.wordtxt);
String a=et.getText().toString();
char[] arr=a.toCharArray();
int rowcount= table.getChildCount();
if(rowcount<arr.length)
{
if(rowcount==1)
{
EditText et1=(EditText)findViewById(R.id.wordtxt);
String a1=et1.getText().toString();
char[] arr1=a1.toCharArray();
int id=(v.getId());
Toast.makeText(getApplicationContext(),"If ID is "+id,2000).show();
btn.setText(String.valueOf(arr[id]));
btn.setEnabled(false);
TableRow tr = new TableRow(MainActivity.this);
int x=0;
int y=0;
while(x <rowcount+1)
{
if (x % 9 == 0) {
tr = new TableRow(MainActivity.this);
table.addView(tr);
}
Button btn1 = new Button(MainActivity.this);
btn1.setText("");
btn1.setOnClickListener(this);
btn1.setId(x);
tr.addView(btn1);
x++;
}
}
else
{
EditText et2=(EditText)findViewById(R.id.wordtxt);
String a2=et2.getText().toString();
char[] arr2=a2.toCharArray();
int min = 0;
int max = rowcount-1;
Random r = new Random();
int i1 = r.nextInt(max - min + 1) + min;
int id=(v.getId());
if(id==i1)
{
Button tx = (Button) findViewById(i1);
Button(MainActivity.this);
tx.setText(String.valueOf(arr[i1]));
tx.setEnabled(false);
}
TableRow tr = new TableRow(MainActivity.this);
int x=0;
int y=0;
while(x <rowcount+1)
{
if (x % 9 == 0) {
tr = new TableRow(MainActivity.this);
table.addView(tr);
}
Button btn1 = new Button(MainActivity.this);
btn1.setText(""); btn1.setOnClickListener(this);
btn1.setId(x);
tr.addView(btn1);
x++;
}
}
}
}
});
table.setShrinkAllColumns(true);
}
});
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}
公共类MainActivity扩展了ActionBarActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮按钮=(按钮)findViewById(R.id.button1);
最终EditText et=(EditText)findViewById(R.id.wordtxt);
最后一个字符串a=et.getText().toString();
最终字符[]arr=a.toCharArray();
//捕获按钮点击
setOnClickListener(新的OnClickListener(){
公共void onClick(视图参数){
//隐藏键盘
InputMethodManager inputManager=(InputMethodManager)
getSystemService(getApplicationContext().INPUT\u方法\u服务);
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE(不总是);
最终TableLayout table=(TableLayout)findviewbyd(R.id.tbl);
//烤面包机
int wordCount=et.getText().length();
makeText(getApplicationContext(),“字数为”+wordCount,4000).show();
int k=0;
最终表格tr;
tr=新表行(MainActivity.this);
表1.addView(tr);
最终按钮btn;
btn=新建按钮(MainActivity.this);
btn.setText(“”);
btn.setId(k);
tr.addView(btn);
btn.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
EditText et=(EditText)findViewById(R.id.wordtxt);
字符串a=et.getText().toString();
char[]arr=a.toCharArray();
int rowcount=table.getChildCount();
if(rowcount)请显示一些代码。@Udi ldan,你能为我提供任何解决方案吗?你能显示完整的活动吗?@Udi Idan,我已经发布了完整的活动。请努力格式化你的代码,删除多余的空行,正确缩进块,删除导入(我们不需要它们,我们可以猜它们是什么)。至于您的错误,不要使用final,因为您使用的是错误的。不要在任何地方初始化变量。使用这些练习练习java,并阅读一本面向java初学者的书。很抱歉,如果您不先学习java语言一点,您将无法继续前进。我们无法纠正所有这些错误谢谢你。