简体   繁体   中英

Android edittext not updating

My edittext's methods work properly as I have checked it on debbug, but in the graphical layout there are no changes at all.

When changing the text programatically, in the graphical layout doesn't appear, but if I try myedittext.getText() on the debbug expressions/watches it returns the correct string, so the settext() method is working OK but the changes are not shown.

Here is the code:

public class easmpartne extends FragmentActivity {

     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.easmpartne);

        FragmentTabHost tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
        tabHost.setup(this,
                getSupportFragmentManager(), android.R.id.tabcontent);
        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("General"),
                Tab1.class, null);
        tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("Categ"),
                Tab2.class, null);

        LayoutInflater inflater = this.getLayoutInflater();

        viewGeneral= inflater.inflate(R.layout.tab1, null);
        viewCateg= inflater.inflate(R.layout.tab2, null);

        txtRef=(EditText)viewGeneral.findViewById(R.id.txtRef);
        txtRef.setText("example");
        txtRef.setEnabled(false);
     }
}

Neither settext nor setenabled seems no have any effect on the graphical layout when executing.

easmpartne.xml:

<android.support.v4.app.FragmentTabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


    <HorizontalScrollView android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:fillViewport="true"
       android:scrollbars="none">

    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:orientation="horizontal" />
    </HorizontalScrollView>

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="match_parent"
       android:layout_height="0dp"
       android:layout_weight="1" />

</android.support.v4.app.FragmentTabHost>

tab1.xml:

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/scrollView2"
    android:layout_marginLeft="5dp"
    android:fillViewport="true"
    android:layout_alignParentBottom="true"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/linlayouteasmpartne"
        android:orientation="vertical">

        <TableLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tablelayout1">

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="5dp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="@string/ref"
                    android:id="@+id/textView" />

                <EditText
                    android:layout_width="170dp"
                    android:layout_height="wrap_content"
                    android:id="@+id/txtRef" />
            </TableRow>

....

(I don't know if this could be a problem with de tabhost as it is the first time I use it)

Is that the correct way to get the edittext in this case?

What are the possible problems/solutions?

Thanks.

the point is, you see, that the layout is not kind of a shared variable so when you or the runtime reads it, it instances all views referenced inside and you have to stick to it. Then you follow the lifecycle of the components so to set the values you want you should do it in onViewStateRestored(Bundle) when the view is actually done or something like that, or onStart or so

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM