-1

こんにちは、この Android アプリの開発に eclipse を使用しています。インフレータを使用してレイアウトを膨張させていますが、すべて正常に動作します.膨張したアイテムを別のレイアウトに1つずつ追加しているため、デバイスの向きが変更されると、膨張したアイテムはすべてなくなります. アプリケーションが再起動されたようです。しかし、いくつかの値はまだ残っています..助けてください..

public void addNewItem() {
    LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View item = li.inflate(R.layout.activity_order_items, null);
    orderItemFrameView.add(item);       
    itemsLayout.addView(item);
    setAdditionalFonts(item);           
}

private void setAdditionalFonts(View view) {        
    TextView lblNameTak = (TextView)view.findViewById(R.id.tak_itemNo); 
    AutoCompleteTextView txtNameTak = (AutoCompleteTextView)view.findViewById(R.id.tak_itemName);   
    ImageView barScan = (ImageView)view.findViewById(R.id.barcode_scan);
    TextView lblRate = (TextView)view.findViewById(R.id.tak_lblRate);
    TextView lblQty = (TextView)view.findViewById(R.id.tak_lblQty);
    TextView lblTotal = (TextView)view.findViewById(R.id.tak_lblTotal);
    TextView rate = (TextView)view.findViewById(R.id.tak_Rate);
    EditText2 qty = (EditText2)view.findViewById(R.id.tak_Qty);
    TextView total = (TextView)view.findViewById(R.id.tak_Total);
    qty.totTextView = total;
    qty.rateTextView = rate;        
    qty.orderTake = this;
    qty.index = orderItemFrameView.size() - 1;
    qty.sqlDb = SqlDb;
    qty.itemName = txtNameTak;
    setupBarcodeScan(barScan);

    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/ubuntu-l.ttf");
    Typeface tf2 = Typeface.createFromAsset(getAssets(), "fonts/calibri.ttf");
    Typeface tf3 = Typeface.createFromAsset(getAssets(), "fonts/ubu-r.ttf");        
    Typeface tf4 = Typeface.createFromAsset(getAssets(), "fonts/tahoma.ttf");
    lblNameTak.setTypeface(tf3);        
    txtNameTak.setTypeface(tf2);
    lblRate.setTypeface(tf2);   
    lblQty.setTypeface(tf2);    
    lblTotal.setTypeface(tf2);      
    lblNameTak.setText("Item " + (qty.index + 1));

    DbAdapterItem dbItem;
    TextAdapterItem txtItem;

    dbItem = new DbAdapterItem(this, SqlDb);                
    txtItem = new TextAdapterItem(dbItem,  this,  qty);
    txtNameTak.setAdapter(txtItem);     
    txtNameTak.setOnItemClickListener(txtItem);

    txtNameTak.requestFocus();
}

addNewItem() によって作成されたこれらのアイテムはすべて消えます...

これが私が膨らませているレイアウトです...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom ="22dp"

tools:context=".OrderItems" >

<FrameLayout
    android:layout_width="match_parent"        
    android:background= "#888888"
    android:layout_height="98dp" >
    <TextView
        android:id="@+id/tak_itemNo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="15dp"
        android:layout_marginTop="2.7dp"
        android:text="Item 1"
        android:layout_gravity="right"
        android:textColor="#DDDDDD" />
    <LinearLayout
        android:layout_width="match_parent" 
        android:layout_marginTop="22dp"
        android:orientation="vertical"
        android:background= "#FFFFFF"     
        android:layout_height="75dp" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <AutoCompleteTextView
                android:id="@+id/tak_itemName"
                android:imeOptions="actionUnspecified"
                android:imeActionLabel="search"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginRight="0dp"
                android:layout_weight="1.06"
                android:completionThreshold="1"
                android:ems="10"
                android:hint="Item Name / Barcode"                  
                android:inputType="textCapWords"
                android:singleLine="true"
                android:textColorHint="#DDDDDD" />

            <ImageView
                android:id="@+id/barcode_scan"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="7dp"
                android:paddingRight="7dp"
                android:paddingTop="6dp"
                android:src="@android:drawable/ic_menu_camera" />

        </LinearLayout>

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <FrameLayout
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_gravity="left"

                >
            <TextView
                android:id="@+id/tak_lblRate"
                android:layout_width="wrap_content"
                android:layout_marginLeft="7dp"
                android:layout_height="wrap_content"    
                android:textColor="#555555"
                android:textSize="10sp"            
                android:text="Rate" />

            <TextView
                android:id="@+id/tak_Rate"
                android:layout_width="match_parent"
                android:layout_marginTop="12dp"
                android:layout_marginRight="15dp"
                android:layout_height="wrap_content"    
                android:gravity="right"
                android:textSize="16sp"            
                android:text="0.00" />

            </FrameLayout>

             <FrameLayout
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"

                >
            <TextView
                android:id="@+id/tak_lblQty"
                android:layout_width="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginRight="7dp"
                android:layout_height="wrap_content"    
                android:textColor="#555555"
                android:textSize="10sp"            
                android:text="Qty" />

            <com.sayka.ordergadget.EditText2
                android:id="@+id/tak_Qty"
               android:layout_width="match_parent"
               android:layout_marginBottom="-4dp"
                android:layout_marginTop="4dp"
                android:inputType="numberDecimal"
                android:imeOptions="actionNext"
                android:layout_marginLeft="12dp"
                android:layout_height="wrap_content"    
                android:gravity="center"
                android:textSize="16sp"            
                android:text="0.0" />

            </FrameLayout>

              <FrameLayout
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_gravity="right"

                >
            <TextView
                android:id="@+id/tak_lblTotal"
                android:layout_width="wrap_content"
                android:layout_marginLeft="7dp"
                android:layout_gravity="left"
                android:layout_height="wrap_content"    
                android:textColor="#555555"
                android:textSize="10sp"            
                android:text="Total" />

            <TextView
                android:id="@+id/tak_Total"
               android:layout_width="match_parent"
                android:layout_gravity="right"
                android:layout_marginTop="12dp"
                android:layout_marginRight="15dp"
                android:layout_height="wrap_content"    
                android:gravity="right"
                android:textSize="16sp"            
                android:text="0.00" />

            </FrameLayout>

        </FrameLayout>

    </LinearLayout>



</FrameLayout>

4

1 に答える 1

5

それは正常な動作であり、あなたは正しいです。アクティビティはローテーションでゼロから再作成されます。

何かを持続させたい場合。提供されたバンドルの onSaveInstanceState 中に保存します。

次に、onCreate チェック中にバンドルが null かどうかを確認し、そうでない場合は、データを取り出してビュー要素を再度追加します。

または、それをごまかして、アクティビティが向き/構成の変更を処理することをマニフェストに記載することもできます。

于 2013-09-23T16:38:07.453 に答える