我需要通过layout inflater访问内部textview
sudo hirarchy:
<relative layout id="rlRoot">
<relative layout>
<linear layout>
<linear layout>
<relative layout id="rlTv">
<textView id="tvOne">
我想通过toast动态设置id tvOne的值。
逻辑我用如下
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.test, (ViewGroup) findViewById(R.id.rlRoot));
TextView txtId = (TextView) layout.findViewById(R.id.tvOne);
txtId.setText("Id: " + getId());
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.FILL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
但是这给了#34; View没有附加到窗口管理器&#34;。 我还将rlRoot改为rlTv。但同样的错误。 如何访问此嵌套文本视图?
答案 0 :(得分:1)
如果您的逻辑位于onCreate()
,则更改
View layout = inflater.inflate(R.layout.test, (ViewGroup) findViewById(R.id.rlRoot));
这一行
View layout = inflater.inflate(R.layout.test, null);
喜欢这个。我希望这会对你有所帮助。