以编程方式将值设置为Toast中的textview

时间:2013-06-06 07:37:51

标签: android android-layout layout-inflater

我需要通过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。但同样的错误。 如何访问此嵌套文本视图?

1 个答案:

答案 0 :(得分:1)

如果您的逻辑位于onCreate(),则更改

View layout = inflater.inflate(R.layout.test, (ViewGroup) findViewById(R.id.rlRoot));

这一行

View layout = inflater.inflate(R.layout.test, null);

喜欢这个。我希望这会对你有所帮助。