我在布局文件夹中创建了一个新的 .xml 文件,名为log.xml
. 它只包含一个TextView
.
是否可以在我的主要活动的 log.xml 中的 textview 上设置文本?还是只能在使用 log.xml 作为视图的活动中设置?希望你能明白我在这里的意思,否则会详细说明。
谢谢
我在布局文件夹中创建了一个新的 .xml 文件,名为log.xml
. 它只包含一个TextView
.
是否可以在我的主要活动的 log.xml 中的 textview 上设置文本?还是只能在使用 log.xml 作为视图的活动中设置?希望你能明白我在这里的意思,否则会详细说明。
谢谢
如果您没有在“setContentView()”上设置您正在谈论的 xml,您始终可以使用布局充气器来获取它。不过,您必须使用 addView() 将电视添加到当前布局。
LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View vi = inflater.inflate(R.layout.log, null); //log.xml is your file.
TextView tv = (TextView)vi.findViewById(R.id.tv); //get a reference to the textview on the log.xml file.
除非 log.xml 包含在当前可见布局中,否则 findViewById() 将返回 null。
由于您想在新 Activity 中加载 TextView 时设置它的文本,因此可以在用于启动 Activity 的 Intent 中传递新字符串。
在您的第一个活动中的相应 onClick() 中:
Intent intent = new Intent(this, Second.class);
intent.putExtra("myTextViewString", textString);
startActivity(intent);
在您的第二个活动的 onCreate() 中:
setContentView(R.layout.log);
TextView textView = (TextView) findViewById(R.id.textView);
Bundle extras = getIntent().getExtras();
if(extras != null) {
String newText = extras.getString("myTextViewString");
if(newText != null) {
textView.setText(newText);
}
}
以下解决方案对我有用 -
获取布局 XML 文件的视图对象(例如 toast_loading_data) -
View layout = inflater.inflate(R.layout.toast_loading_data,
(ViewGroup) findViewById(R.id.toast_layout_root));
从此视图中获取 TextView 元素(例如 TextView id - toast_text)-
TextView tvToast = (TextView) layout.findViewById(R.id.toast_text);
设置 TextView 的文本 -
tvToast.setText("Loading data for " + strDate + " ...");
以下是来自 Main Activity 的自定义 Toast 消息的片段 -
View layout = inflater.inflate(R.layout.toast_loading_data,
(ViewGroup) findViewById(R.id.toast_layout_root));
TextView tvToast = (TextView) layout.findViewById(R.id.toast_text);
tvToast.setText("Loading data for " + strDate + " ...");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER, 0, 0); //Set toast gravity to bottom
toast.setDuration(Toast.LENGTH_LONG); //Set toast duration
toast.setView(layout); //Set the custom layout to Toast
希望这可以帮助
我想我明白你想说什么。如果你这样做:
TextView tv = (TextView) findViewById(R.id.textView2);
tv.setText(output);
其中textView2
是要设置文本的文本视图的 id,您可以使用该setText()
函数将其设置为任何字符串值。希望这可以帮助!