如何刷新编程创建的布局



我有一个案例,例如我在 onCreateView()中以编程方式创建自定义布局。例如:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    return createLayout(cView);
    }
    View createLayout(View view) {
    LinearLayout linLayout = new LinearLayout(activity);
    linLayout.setOrientation(LinearLayout.VERTICAL);
    LinearLayout.LayoutParams linLayoutParam = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
    linLayout.setLayoutParams(linLayoutParam);
    for (int i = 0; i <= 3; i++) {
         TextView tv = new TextView(activity);
         tv.setId(i);
         tv.setText("TextView");
         tv.setLayoutParams(lpView);
         linLayout.addView(tv);
    }
    view = linLayout;
    return view;
    }
    @Override
    public void onResume() {
    super.onResume();
    }

nah,我要问的是如何刷新具有onResume() ID的textview?谢谢。

您可以在hashmap中将您的文本视图保留在文本视图ID的键中。然后在你的简历上。您可以通过ID获得该文本视图并刷新它。

private HashMap<Integer,TextView> textViews = new HashMap<>();

在创建此textViews时,您需要将TextView放入HashMap中。

for (int i = 0; i <= 3; i++) {
    TextView tv = new TextView(activity);
    tv.setId(i);
    tv.setText("TextView");
    tv.setLayoutParams(lpView);
    linLayout.addView(tv);
    textViews.put(i,tv);
}

您的颜色方法应该看起来像

@Override
protected void onResume() {
    super.onResume();
    TextView tv = textViews.get(yourId);
    tv.setText("Your Text");
}

make textView tv 作为全局,并照常更新此电视。

最新更新