V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moonqqqq
V2EX  ›  Android

如何更新 textview 使得在改变 layout 时候 textview 里面都是新的值?

  •  
  •   moonqqqq · 2017-07-13 05:32:06 +08:00 · 9192 次点击
    这是一个创建于 2709 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近刚刚开始研究安卓,毫无经验。。。还请大家指点一二。

    问题描述: 现在在做一个非常简单的 app,有两个 layout,其中一个为 default 的还有一个 layout 是设备横着时用的也就是有 landscape 的 resource qualifier。 在这两个 layout 上面都有 textview 还有一个 button, 这些组件的 id 在两个 layout 上都是一样的,只有位置是不一样的。比如在 default 的 layout 上面 button ID 是 button1 在 landscape 的 layout 上的 button ID 也是 button1。 我为这个 button 加个一个 callback 用来更新 textview 的值。 然后我就试了下。。。 按下 button 后 textview 是更新了,但是当我把手机横过来他换成 landscape layout 后 textview 的值变回原来的值了。

    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button) findViewById(R.id.button1);
            button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    TextView textView = (TextView)findViewById(R.id.textView);
                    textView.setText(textView.getText()+"123");
                }
            });
    }
    

    是不是因为 setContentView(R.layout.activity_main) 导致了我更新的只是这个 layout 下的 textview ? 那么有没有方法能够更新不同 layout 里面 id 相同的全部的 textview ? 因为我觉得 id 一样了 那就是一样的 widget 嘛。。。 为毛在一个 layout 里更新了另一个还是旧的值。。。

    zhang2e
        1
    zhang2e  
       2017-07-13 07:13:20 +08:00 via Android
    先说说你的需求吧
    davy1995
        2
    davy1995  
       2017-07-13 08:48:48 +08:00 via Android   ❤️ 1
    原因是切换屏幕的时候,activity 生命周期又走了一遍。
    android:configChanges="orientation"搜索下这个怎么用
    inmyfree
        3
    inmyfree  
       2017-07-13 08:59:24 +08:00 via iPhone   ❤️ 1
    activity 转屏重启了
    vjnjc
        4
    vjnjc  
       2017-07-13 11:32:38 +08:00   ❤️ 1
    你要让竖屏和横屏的 layout 看起来一样么?那么就用 onSaveInstanceState()和 onRestoreInstanceState()来做保存和恢复

    https://developer.android.com/guide/components/activities/activity-lifecycle.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1060 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 18:28 · PVG 02:28 · LAX 10:28 · JFK 13:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.