【问题标题】:inflates 2 views using same xml:second view contains properties of first view使用相同的 xml 膨胀 2 个视图:第二个视图包含第一个视图的属性
【发布时间】:2014-03-27 09:23:51
【问题描述】:

当更改第一个视图的TextView的文本时,第二个视图的textView的文本显示两个TextView的文本,一个在另一个之上。

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    FrameLayout rl=(FrameLayout) findViewById(R.id.mainLayout);

    View v1=LayoutInflater.from(this).inflate(R.layout.text_view, null);
    View v2=LayoutInflater.from(this).inflate(R.layout.text_view, null);

    TextView myTextView1= (TextView) v1.findViewById(R.id.myTextView);
    TextView myTextView2= (TextView) v2.findViewById(R.id.myTextView);

    myTextView1.setText("str1");
    myTextView2.setText("str2");


    rl.addView(v1);
    rl.addView(v2);









}

【问题讨论】:

  • 布局?代码?有什么可看的吗?
  • 您正在使用框架布局,目标是让视图重叠吗?
  • 不,我在标签中使用它,每个视图属于不同的标签,我没有发布我的所有代码。

标签: android android-button layout-inflater


【解决方案1】:

我猜这个问题是因为您使用的是框架布局,所以子视图会重叠。例如,如果您将该框架布局切换为线性布局,我想根据文本视图,结果将与您预期的一样。

【讨论】:

  • 我不能使用 LinearLayout,我的 2 个视图中的每一个都属于不同的选项卡,它们不应该重叠,似乎系统在从 1 个选项卡移动到另一个选项卡时不会清理屏幕。
【解决方案2】:

非常简单.. 1. 您必须在第二个文本视图中使用 append 属性而不是 settext 2nd 你可以使用 extras 来传递使用意图或使用 getter setter 方法,如

public static void setstr_name(String str_name) {
        GlobalVariable.str_name = str_name;
    }

    public static String getstr_name() {
        return str_name;
    }

【讨论】:

  • 不明白,为什么要传递intent,全局变量代表什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多