我是Android新手,想要将一些文本从片段传递到自定义视图。在自定义视图中,我想使用canvas.drawText
来定位字符串。我想使用canvas.drawText
的原因是为了与某些图形的位置保持一致。
这是什么程序?
为了澄清,我的片段有这样的东西:
public class Fragment1 extends Fragment {
private TextView view;
private TextView txtBox;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout, container,false);
txtBox = (TextView) view.findViewById(R.id.TxtBox);
String myString = "testing";
txtBox.setText(myString);
return view;
}
}
我有一个View1的fragment_layout.xml文件(我的自定义视图):
<com.example.stuff.View1
android:id="@+id/TxtBox"
android:layout_width="match_parent"
android:layout_height="match_parent" />
我希望在自定义视图中进行调用:
public class View1 extends TextView {
//constructors:
public View1(Context context, AttributeSet ats, int ds) {
super(context, ats, ds);
init();
}
public View1(Context context) {
super(context);
init();
}
public View1(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
...
canvas.drawText(myString, margin1, margin2, paint);
....
}
...我想要的是从Fragment1.java中获取myString
到View1.java。
答案 0 :(得分:1)
您可以动态创建com.example.stuff.View1
自定义视图,即不要将其添加到xml中,而是使用代码添加它。然后您可以传递constructor
的{{1}}中的文字
其他方法可能是在com.example.stuff.View1
类中创建一个方法并在那里设置文本。例如
com.example.stuff.View1
然后在你的代码中执行类似这样的操作
public class View1 extends TextView {
//constructors:
public View1(Context context, AttributeSet ats, int ds) {
super(context, ats, ds);
init();
}
public View1(Context context) {
super(context);
init();
}
public View1(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public void setMyText(String string) {
myString=string;
}
...
canvas.drawText(myString, margin1, margin2, paint);
....
}
答案 1 :(得分:0)