2012-09-12 28 views
-2

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

的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,所以任何答案将不胜感激..谢谢:)

+1

您可以使用SQLite,SharedPreferences但在应该读取数据之前。 – faradaj

回答

0

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

What's onCreate(Bundle savedInstanceState)

更新:如果你想永久存储,那么你将不得不使用SharedPreferences对象,或者SQLite数据库。您可以在Android Developer website上阅读更多信息。

1

首先获得来自EditText值和AppPreferences类为:

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 
相关问题