我是Android的新手,如果我的问题太蠢了就道歉!
我在公共类中创建了一个新的TextView,但是当我想为它分配ID时,[我尝试了text1.setID(1)],但Eclipse无法识别text1。
有什么问题?我是否定义了TextView错误?
其实我的目标是创建一个包含2个textViews(text1& text2)的类(这里是Class Post),然后我想在我的程序中创建这个类的对象(例如在main活动中),这是一个正确的方法吗? (一种简单的创建新的Android小部件)
public class Post{
Context Creator_Context;
public Post(Context context)
{
ctx= context;
}
//Creating a textview.
TextView text1 = new TextView(Ctx);
TextView text2 = new TextView(Ctx);
///////here is the PROBLEM////// :
text1.setID(1);
}
谢谢,
答案 0 :(得分:0)
您可以尝试为已创建的textView设置标记。 (标签可以是字母数字字符串)
textView.setTag("TAG-1");
答案 1 :(得分:0)
这不是您创建简单小部件所需的方式。
除此之外,更简单的方法是扩展现有组件并将textview放入其中。例如,您可以扩展FrameLayout:
public class TwoLinesTextButton extends FrameLayout {
private TextView textView1;
private TextView textView2;
public TwoLinesTextButton(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context, attrs);
}
public TwoLinesTextButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initView(context, attrs);
}
public void fill(String text1, String text2) {
textView1.setText(text1);
textView2.setText(text2);
}
private void initView(Context context, AttributeSet attrs) {
LayoutInflater infl = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = infl.inflate(getLayoutResource(), null);
textView1 = (TextView) view.findViewById(R.id.text_1);
textView2 = (TextView) view.findViewById(R.id.text_2);
this.addView(view);
}
protected int getLayoutResource() {
return R.layout.twolinestextbutton;
}
}
并在layout / twolinestextbutton.xml中:
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:id="@+id/text_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="250dp"/>
<TextView
android:id="@+id/text_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="250dp"/>