-2

我有多个编辑文本框,单击“保存”按钮,它应该能够在应用程序再次打开时获取文本并检索它。

xml文件的代码如下:

<TableLayout 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:background="@color/black" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/button3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:clickable="false"
                android:focusable="false"
                android:gravity="center"
                android:height="50dip"
                android:text="@string/TabletName"
                android:textColor="@color/white"
                android:textStyle="bold"
                android:width="200dip" />

            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:clickable="false"
                android:focusable="false"
                android:gravity="center"
                android:height="50dip"
                android:text="@string/Quantity"
                android:textColor="@color/white"
                android:textStyle="bold"
                android:width="120dip" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/editText1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterNameHere"
                android:inputType="text"
                android:textColor="@color/black"
                android:width="200dip" >

                <requestFocus />
            </EditText>

            <EditText
                android:id="@+id/editText10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterQuantity"
                android:inputType="number"
                android:textColor="@color/black"
                android:width="120dip" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/editText3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterNameHere"
                android:inputType="text"
                android:textColor="@color/black"
                android:width="200dip" />

            <EditText
                android:id="@+id/editText4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterQuantity"
                android:inputType="number"
                android:textColor="@color/black"
                android:width="120dip" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow4"
            android:layout_width="160dip"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/editText5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterNameHere"
                android:inputType="text"
                android:textColor="@color/black"
                android:width="200dip" />

            <EditText
                android:id="@+id/editText6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterQuantity"
                android:inputType="number"
                android:textColor="@color/black"
                android:width="120dip" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/editText7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterNameHere"
                android:inputType="text"
                android:textColor="@color/black"
                android:width="200dip" />

            <EditText
                android:id="@+id/editText8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterQuantity"
                android:inputType="number"
                android:textColor="@color/black"
                android:width="120dip" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/editText9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterNameHere"
                android:inputType="text"
                android:textColor="@color/black"
                android:width="200dip" />

            <EditText
                android:id="@+id/editText2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterQuantity"
                android:inputType="number"
                android:textColor="@color/black"
                android:width="120dip" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/editText11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterNameHere"
                android:inputType="text"
                android:textColor="@color/black"
                android:width="200dip" />

            <EditText
                android:id="@+id/editText12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterQuantity"
                android:inputType="number"
                android:textColor="@color/black"
                android:width="120dip" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/editText13"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterNameHere"
                android:inputType="text"
                android:textColor="@color/black"
                android:width="200dip" />

            <EditText
                android:id="@+id/editText14"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterQuantity"
                android:inputType="number"
                android:textColor="@color/black"
                android:width="120dip" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/editText15"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterNameHere"
                android:inputType="text"
                android:textColor="@color/black"
                android:width="200dip" />

            <EditText
                android:id="@+id/editText16"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/EnterQuantity"
                android:inputType="number"
                android:textColor="@color/black"
                android:width="120dip" />

        </TableRow>

        <Button
            android:id="@+id/button1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/Save"
            android:textColor="@color/white" />

    </TableLayout>

java文件中的代码如下:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class TabletNotifier extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_screen2);              
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_screen2, menu);
        return true;
    }
}

我正在使用 Eclipse IDe,而且我对 android 也很陌生,所以任何答案都将不胜感激。谢谢 :)

4

2 回答 2

2

首先从EditTextAppPreferences类中获取值:

AppPreferences appPrefs;

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

    appPrefs=new AppPreferences(this);

    EditText editMessage=(EditText)findViewById(R.id.youredittext);
    String messageString1=editMessage.getText().toString();

    //so as for other too

}

AppPreferences.java

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;

public class AppPreferences {
    private SharedPreferences appSharedPrefs;
    private Editor prefsEditor;

    public AppPreferences(Context context) {
        this.appSharedPrefs = PreferenceManager
        .getDefaultSharedPreferences(context);
        this.prefsEditor = appSharedPrefs.edit();
    }

    public String getValue(String text) {
        return appSharedPrefs.getString(text, "");
    }

    public void setValue(String key,String text) {
        prefsEditor.putString(key, text);
        prefsEditor.commit();
    }
}

然后在保存按钮上:

appPrefs.setValue("message1",messageString1);
//so as save others too

然后您可以随时检索这些值,例如:

appPrefs.getValue("message1")
//so as retrive other values 
于 2013-03-06T06:23:43.560 回答
0

Android 允许您使用 Bundle 存储有关 Activity 的持久信息。当 Activity 再次启动时,此 Bundle 会作为 onCreate 方法中的参数提供给您。你可以看看这个已回答的问题:

什么是 onCreate(Bundle savedInstanceState)

更新:如果您想要持久存储,那么您将不得不使用 SharedPreferences 对象或 SQLite 数据库。您可以在Android 开发者网站上阅读更多内容。

于 2012-09-12T14:01:04.010 回答