2012-09-12 3 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 позволяет хранить постоянную информацию о деятельности с помощью Bundle. Этот пакет предоставляется вам, когда активность запускается снова как параметр в методе onCreate. Вы можете посмотреть на это ответил на вопрос:

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 
Смежные вопросы