如何在单击按钮时保存多个edittexts中的文本?

时间:2012-09-12 13:55:49

标签: android eclipse android-edittext

我有多个edittext框,点击" Save"按钮,它应该能够获取文本并在应用程序再次打开时检索它。

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也很新,所以任何答案都会受到赞赏..谢谢:)

2 个答案:

答案 0 :(得分:1)

首先从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 

答案 1 :(得分:0)

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

What's onCreate(Bundle savedInstanceState)

更新:如果您想要持久存储,则必须使用SharedPreferences对象或SQLite数据库。您可以在Android Developer website上了解更多信息。