подайте стойността на edittext с помощта на масив

Имам повече от 3 edittext. Когато въведа нещо в edittext, трябва да го запазя на друг екран. Посочих някакъв въпрос, получих отговор. Но как да преминете през масив. Използвах отделен метод putExtra за всеки edittext и друг екран, който ми трябва, за да покажа един TextView. Сега създадох отделен TextView за всеки.

код:

Дейност:

 et=(EditText)findViewById(R.id.et);

            et1=(EditText)findViewById(R.id.et1);

            btn=(Button)findViewById(R.id.btn);

            btn.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    Intent intent = new Intent(Save.this, Get.class);
                String[] myStrings = new String[] {"et.getText().toString()", "et1.getText().toString()"};
                intent.putExtra("strings", myStrings);
                startActivity(intent);


SharedPreferences preferences = getDefaultSharedPreferences(this);
                  SharedPreferences.Editor editor = preferences.edit();
                  editor.putString("Name","test");
                  editor.commit();

                    }


            });

Дейност 1:

    Intent intent = getIntent();
              String[] myStrings = intent.getStringArrayExtra("strings");

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
          String name = preferences.getString("Name","");


              txt=(TextView)findViewById(R.id.txt);
                txt.setText(myStrings); 

person user2674668    schedule 19.09.2013    source източник
comment
възможен дубликат на Предаване на масив от низове между два класа в приложение за Android   -  person Enrichman    schedule 19.09.2013
comment
setText дава грешка: Методът setText(CharSequence) в типа TextView не е приложим за аргументите (String[])   -  person user2674668    schedule 19.09.2013
comment
@Enrichman: вижте редактирания код   -  person user2674668    schedule 19.09.2013
comment
myStrings е масив, така че трябва да имате достъп до стойностите като myStrings[0], myStrings[1] и т.н.   -  person Enrichman    schedule 19.09.2013
comment
не разбрах Къде да пиша?   -  person user2674668    schedule 19.09.2013
comment
Написах отговор, така че можете да видите пример. Ако имате нужда от допълнителна помощ, просто попитайте. :)   -  person Enrichman    schedule 19.09.2013
comment
искате да прехвърлите три стойности на текст за редактиране на друг екран.   -  person Yugesh    schedule 19.09.2013


Отговори (2)


Ще напиша пълен отговор.

Intent intent = new Intent(Save.this, Get.class);
String[] myStrings = new String[] { et.getText().toString() ,  et1.getText().toString() };
intent.putExtra("strings", myStrings);
startActivity(intent);

и тогава

Intent intent = getIntent();
String[] myStrings = intent.getStringArrayExtra("strings");

txt1=(TextView)findViewById(R.id.txt1);
txt1.setText(myStrings[0]);

txt2=(TextView)findViewById(R.id.txt2);
txt2.setText(myStrings[1]); 

или можете просто да съедините низовете и да го предадете на един TextView

Intent intent = getIntent();
String[] myStrings = intent.getStringArrayExtra("strings");

String joined = myStrings[0] + " - " + myStrings[1];

txt=(TextView)findViewById(R.id.txt);
txt.setText(joined);

Надявам се това да помогне.


Обикновено пиша клас, който ще обработва SharedPrenferences с някакъв статичен метод, като:

public class Storage {

    public static String getName(Context context) {
        final SharedPreferences prefs = context.getSharedPreferences("com.my.package", Context.MODE_PRIVATE);
        return prefs.getString("name", "");
    }

    public static void setName(Context context, String name) {
        final SharedPreferences prefs = context.getSharedPreferences("it.enrichman.bolloauto", Context.MODE_PRIVATE);
        prefs.edit().putString("name", name).commit();
    }

}

Можете да опитате това, като го съхраните за първи път в първата си дейност и след това да го извлечете във втората. Използвайте тост за тестване.

person Enrichman    schedule 19.09.2013
comment
TextView показва само et.getText().toString(), et1.getText().toString() този текст, който не показва това, което пиша - person user2674668; 19.09.2013
comment
Можете да използвате само един TextView. Редактирано. :) - person Enrichman; 19.09.2013
comment
Вижте моя код. Увили сте et1.getText().toString() между двойни кавички, като "et1.getText().toString()". Не е нужно! - person Enrichman; 19.09.2013
comment
Работи. Дали това е запазено на някое място. Трябва да получа тези данни за запазване по-късно - person user2674668; 19.09.2013
comment
Можете да запазите тези данни в SharedPreferences. - person Enrichman; 19.09.2013
comment
Да, трябва само да го запазите. stackoverflow.com/questions/3624280/ - person Enrichman; 19.09.2013
comment
Не работи. Можете ли да редактирате отговора си със SharedPreferences и намерение - person user2674668; 19.09.2013
comment
Защо казваш, че това не работи? Пробвал ли си да ги заредиш? - person Enrichman; 19.09.2013
comment
вижте моя редактиран въпрос. Използвах горния код за зареждане на друга дейност - person user2674668; 19.09.2013
comment
Запазвате масива вместо заредения низ.. txt.setText(myStrings);. Променете го на txt.setText(name);............. - person Enrichman; 19.09.2013
comment
NullPointerException на SharedPreferences.Editor editor = preferences.edit(); - person user2674668; 19.09.2013
comment
Вероятно трябва да отидете малко по-дълбоко в JAVA преди Android... Това означава, че предпочитанията са нулеви, но без вашия код е трудно да се види къде... - person Enrichman; 19.09.2013
comment
Проблемът вероятно е във вашия getDefaultSharedPreferences(this);. Никога не използвайте this, защото това не винаги е контекстът. Във вашия случай това се отнася до класа OnClickListener. Използвайте Activity.this вместо това (разбира се с ActivityName.this). getDefaultSharedPreferences(ActivityName.this); - person Enrichman; 19.09.2013

Този код работи правилно.

    scrollview=(ScrollView)findViewById(R.id.scrollview1); 
    tb2.setTextSize(30); 
    tb2.setMovementMethod(new ScrollingMovementMethod());
    scrollview.post(new Runnable() { 
    public void run() { 
        scrollview.fullScroll(View.FOCUS_DOWN);  
        }
    }); 
    chat1.setOnClickListener(new OnClickListener() { 
        public void onClick(View v) { 
         {
             textsaring1=edt1.getText().toString();
             tb2.setText(tb2.getText()+" "+textsaring1);
             edt1.setText(" ");
        } 
        }
    }); 
}
person Amitsharma    schedule 15.11.2013