我有一个扩展Activity并解析xml文件的类。我想要的文本在xml文件中作为参数传递给java类。我的问题是在java类中我想从资源Layout文件夹中引用android TextViews,所以我可以将文本设置为我传入的String参数。我想我可以从Activity扩展java类或作为一个传入参数当前活动...他们是唯一引用res / layout中的文件吗?
public class xmlClass extends Activity{
//parse the xml
MyDataFile mdf = new MyDataFile(arg1, arg2, arg3, arg4);
}
public class MyDataFile{
public MyDataFile(arg1, arg2, arg3, arg4)
{
}
******* Here I want to set the Text in a TextView to arg1;
}
答案 0 :(得分:1)
我看到两个选项:
首先,要使MyDataFile成为您的Activity中的嵌套类,如下所示:
public class xmlClass extends Activity{
//keep TextViews as member
protected TextView mTextView
public void onCreate(){
...
setContentView(...)
mTextView = (TextView)findViewById(R.id.your_text_id);
//parse your XML
MyDataFile mdf = new MyDataFile(arg1, arg2, arg3, arg4);
}
//make MyDataFile a nested class
public class MyDataFile{
public MyDataFile(String arg1,String arg2, ...){
mTextView.setText(arg1);
}
}
第二个解决方案是将TextViews作为参数提供,就像在此构造函数
中一样 public MyDataFile(String arg1, TextView textForArg1, ...){
textForArg1.setText(arg1);
}
答案 1 :(得分:0)
您可以在调用findViewById(R.id.myResId)
方法后使用setContentView(R.layout.myLayout);
方法查找视图。
如果您想将文字设置为TextView
,可以直接使用((TextView) findViewById(R.id.myResId)).setText(R.string.myText);
。
如果您想从不属于自己Context
的类中访问您的视图,可以在方法参数中传递上下文,然后调用context.findViewById(...)
。
但这很容易迟早导致Context泄漏。
解决问题的更好方法是为文本设置一个getter,并在托管视图的Activity
或Fragment
内进行设置。
答案 2 :(得分:0)
TextView yourTextView = (TextView)findViewById(R.id.yourTextViewId);
yourTextView.setText(yourText);
答案 3 :(得分:0)
在你的布局xml上,找到textview并设置:
android:id = "lorem"
然后在你的活动课上:
TextView txt = (TextView) findViewById(R.id.lorem);
并以某种方式将txt传递给您的数据类。 (作为参数传递是有效的。)
然后:
txt.setText(arg1);