2014-01-09 2 views
0

Привет там Я новичок в Android ПрограммированиеAndroid: передача данных Ошибка после щелчка кнопки

Я пытаюсь создать приложение, в котором пользователь нажимает кнопку нажмет на первой странице цвет текста в изменении кнопок цвет и изменение отражается на другой странице активности.

Для этого у меня 1) один фрагмент класса (BookLockerFragment), который ссылка на файл XML, содержащий кнопки 2) Файл родительского активности (TabActivity.java) 3) файл активности, чтобы отразить изменение (complainResponse.java)

Вот код: LodgeComplaintFragment.java

ArrayList<String>userSelectedOptions = new ArrayList<String>(); 
if(btnSis.getCurrentTextColor()==Color.BLUE){ 
userSelectedOptions.add("SIS"); 
} 
Button but = (Button) root.findViewById(R.id.searchButton); 
    ..... 
    but.setOnClickListener(new View.OnClickListener(){ 

    @Override 
    public void onClick(View v) { 
     buttonListener.onMakeBookingButtonPressed(userSelectedOptions); 
    } 
}); 

    TabMainActivity.java 
    public void onMakeBookingButtonPressed(ArrayList<String> list) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(TabMainActivity.this, 

        complainResponse.class); 
       intent.putStringArrayListExtra("userSelectOptions",list); 
       startActivity(intent); 
      } 


complainResponse.java 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Get the message from the intent 
    Intent intent = getIntent(); 
    setContentView(R.layout.complainresponse); 

    userInput = intent.getStringArrayListExtra("userSelectOptions"); 
    // Creates the window used for the UI 

    if (userInput != null) { 
     if (userInput.get(0) != null) { 
      textview1 = (TextView) findViewById(R.id.textView1); 
      textview1.setText(userInput.get(0)); 
     } 
    } 

} 

Ошибка происходит на этой линии: если (UserInput = NULL) {// из complainResponse.j! AVA

Logcat: java.lang.IndexOutOfBoundsException

Пожалуйста, помогите

+0

большая часть кода, были опущены, чтобы обеспечить соответствующие те – user2445971

+0

Вы никогда ничего не помещал в списке. – hichris123

ответ

0

Там нет ничего в ArrayList, который вы передаете в вашей деятельности. Я подозреваю, что это немного кода не выполняется -

if(btnSis.getCurrentTextColor()==Color.BLUE){ 
    userSelectedOptions.add("SIS"); <------------ never gets here 
} 

Чтобы проверить это, запустить приложение в режиме отладки, и поместить контрольную точку в if заявлении

0
userInput.get(0) != null 

это является причиной по моему мнению, список может быть инициализирован, но пуст.

вместо этого вы должны использовать,

if (!userInput.isEmpty()) 
Смежные вопросы