2013-06-07 1 views
0

Я пытаюсь отправить некоторые данные из одной активности в другую, и она работает некорректно, но не так, как я хочу работать. Проблема 1-Вещи смешиваются. В следующей части действия в элементе listitem будет отображаться некорректный textView и часть с правильным текстовым просмотром. Проблема 2- Я могу только перечислить 1 элемент в новом действии, но хочу иметь возможность отправлять несколько списков. Я думаю, проблема заключается в объединении разных типов запроса putExtra в одно и то же место, как здесь.Проблемы с putExtra и putStringArrayList

.putExtra ("inputPrice" (CharSequence) выбрать) .putStringArrayListExtra ("список", ListItems)

Ant помощь будет оценена.

Передача данных на следующую операцию

final TextView username =(TextView)findViewById(R.id.resultTextView); 
String uname = username.getText().toString(); 

final TextView uplane =(TextView)findViewById(R.id.inputPrice);      
String pick = uplane.getText().toString(); 

final TextView daplane =(TextView)findViewById(R.id.date);     
String watch = daplane.getText().toString(); 

startActivity(new Intent(MenuView1Activity.this,RecordCheckActivity.class) 
.putExtra("date",(CharSequence)watch) 
.putExtra("Card Number",(CharSequence)uname) 
.putExtra("inputPrice",(CharSequence)pick) 
.putStringArrayListExtra("list", listItems) 
); 
finish(); 

Это Следующее мероприятие

 Intent is = getIntent(); 
    if (is.getCharSequenceExtra("Card Number") != null) { 
     final TextView setmsg = (TextView)findViewById(R.id.saleRccn); 
     setmsg.setText(is.getCharSequenceExtra("Card Number"));    
    } 
     Intent it = getIntent(); 
    if (it.getCharSequenceExtra("date") != null) { 
     final TextView setmsg = (TextView)findViewById(R.id.saleTime); 
     setmsg.setText(it.getCharSequenceExtra("date"));     
    } 
    Intent id1 = getIntent(); 
    if (id1.getCharSequenceExtra("inputPrice") != null) { 
     final TextView setmsg = (TextView)findViewById(R.id.saleName); 
     setmsg.setText(id1.getCharSequenceExtra("inputPrice")); 
    } 
    ArrayList<String> al= new ArrayList<String>(); 
    al = getIntent().getExtras().getStringArrayList("list"); 
    saleNotes= (TextView) findViewById(R.id.saleNotes); 
    saleNotes.setText(al.get(0)); 
+0

сообщения вашей ошибку журнала пожалуйста –

+0

без ошибок. «list» отправляется в продажу. Например, как и следовало ожидать, но только один экземпляр списка. Список появляется в новой операции в «saleRccn» – SmulianJulian

+0

Два ответа полезны, но у меня все еще возникают проблемы с получением ArrayList – SmulianJulian

ответ

2

Хорошо, несколько вещей:

Прежде всего вы не должны бросать ваши строки, как CharSequence.

Вторая вещь,

Определение намерения, добавить дополнительные услуги, и только затем вызвать startActivity, как показано ниже:

Intent intent = new Intent(MenuView1Activity.this,RecordCheckActivity.class); 
intent.putExtra("date", watch); 
startActivity(intent); 

В-третьих, при получении намерение создать пакет первого, как показано ниже:

Bundle extras = getIntent().getExtras(); 
String date = extras.getString("date"); 

EDIT:

Вот как вы конвертируете весь список массивов в одну строку и добавляете его в текстовое представление.

String listString = ""; 

for (String s : al) 
{ 
    listString += s + "\t"; // use " " for space, "\n" for new line instead of "\t" 
} 

System.out.println(listString); 
saleNotes.setText(listString); 

Надеюсь, это поможет!

+0

Знаете ли вы, как получить arraylist. У меня проблемы с получением TextView. – SmulianJulian

+0

@SmulianJulian см. Мое редактирование выше для создания одной длинной строки из вашего массива! – kushyar

+0

Awesome ... Отлично работает! – SmulianJulian

1

Попробуйте это, не используйте CharSequence просто положить строкового значения

startActivity(new Intent(MenuView1Activity.this,RecordCheckActivity.class) 
.putExtra("date",watch) 
.putExtra("Card Number",uname) 
.putExtra("inputPrice",pick) 
.putStringArrayListExtra("list", listItems) 
); 

И получить как этого

Intent is = getIntent(); 
if (is.getCharSequenceExtra("Card Number") != null) { 
    final TextView setmsg = (TextView)findViewById(R.id.saleRccn); 
    setmsg.setText(is.getStringExtra("Card Number"));    
} 
+0

Да! Вот что я пытался спросить – SmulianJulian