如何获得一个动态创建的textview的ID?
原问题来自于CSDN问答频道,更多解决方案请看:http://ask.csdn.net/questions/1280
问题描述:
我想要在一个android app中动态添加和删除TextView,我现在正在做,但是我在设置和获得TextView的ID的时候碰到了困难。在最后两行代码中我好想得到了空指针异常(et settext和ll.removeView)。有人知道我怎么可以动态的设置和获得一个textview的ID么?setId似乎没有工作,还是就是我错了?
解决方案:
在layout中,TextView并不包含所有的children,但是LinearLayout有。最后,你可以在TextView的OnClickListener中用(只要视图包含layout。如果没有,可能你需要确定一下你想要做什么功能-提前做一个参考的布局可能会有效)
用你的方法的话,id并不是真的需要,因为你总是有一个引用的视图。
然后,如果你想要用views的话(非常冗余的例子,但是它可以解释的更清楚):
问题描述:
我想要在一个android app中动态添加和删除TextView,我现在正在做,但是我在设置和获得TextView的ID的时候碰到了困难。在最后两行代码中我好想得到了空指针异常(et settext和ll.removeView)。有人知道我怎么可以动态的设置和获得一个textview的ID么?setId似乎没有工作,还是就是我错了?
//删除无关的代码
EditText et = (EditText) view.findViewById(R.id.edittext_tags);
et.setText("");
TextView nTv = new TextView(view.getContext());
LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lparams.setMargins(10, 0, 0, 0);
nTv.setLayoutParams(lparams);
nTv.setId(tag_id);
nTv.setText(str.substring(0, str.length()-1));
nTv.setTextColor(Color.BLUE);
nTv.setTextSize(20);
final LinearLayout linl = (LinearLayout) view.findViewById(R.id.linear_layout_tags);
linl.addView(nTv);
nTv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText et = (EditText) view.findViewById(R.id.edittext_tags);
TextView t = ((TextView)v);
et.setText(t.getText().toString());
linl.removeView(v);
}
});解决方案:
在layout中,TextView并不包含所有的children,但是LinearLayout有。最后,你可以在TextView的OnClickListener中用(只要视图包含layout。如果没有,可能你需要确定一下你想要做什么功能-提前做一个参考的布局可能会有效)
final LinearLayout linl = (LinearLayout) view.findViewById(R.id.linear_layout_tags);
linl.addView(nTv);
nTv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText et = (EditText) linl.findViewById(R.id.edittext_tags);
TextView t = ((TextView)v);
et.setText(t.getText().toString());
linl.removeView(v);
}用你的方法的话,id并不是真的需要,因为你总是有一个引用的视图。
然后,如果你想要用views的话(非常冗余的例子,但是它可以解释的更清楚):
nTv.setId(tag_id);
linl.addView(nTv);
TextView duplicateTextViewReference (TextView) linl.findViewById (tag_id);
...全文
相关推荐
Android 一个TextView中设置不同字体大小和颜色
```javaTextView textView = findViewById(R.id.textView);textView.setText(ss);```在实际项目中,你可能需要根据需求动态地生成和应用这些格式
Android使用selector修改TextView中字体颜色和背景色的方法
接下来,在布局文件中引用这些Selector,例如在一个LinearLayout中添加一个TextView:```xml<LinearLayout android:layout_width="match_parent
android如何写一个循环文字滚动的TextView
```javaTextView textView = findViewById(R.id.text_view_marquee);textView.requestFocus();```### 自定义View
toolbar实例程序(两种动态创建toolbar的方法,还有带提示的toolbar)
这通常是通过在Toolbar上添加一个TextView或使用Snackbar来实现提示功能。例如:1. 在Toolbar的布局中添加一个TextView,用于显示提示信息。2.
Android为textView设置setText的时候报错的讲解方案
错误的原因在于,当我们将一个整数传递给`setText(int resid)`时,Android会将其解释为一个资源ID,比如R.string或R.id中的一个。


