您好,我是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));
}
}
}
此行发生错误: if(userInput!= null){ // of complainResponse.java
logcat的: java.lang.IndexOutOfBoundsException
请帮忙
答案 0 :(得分:0)
您传递给活动的ArrayList中没有任何内容。 我怀疑这段代码没有被执行 -
if(btnSis.getCurrentTextColor()==Color.BLUE){
userSelectedOptions.add("SIS"); <------------ never gets here
}
要验证这一点,请在调试模式下运行应用程序,并在if
语句中放置一个断点
答案 1 :(得分:0)
userInput.get(0) != null
这是我认为错误的原因,列表可以初始化但是空。
相反你应该使用,
if (!userInput.isEmpty())