Android 我的应用程序未在postexecute方法中读取if语句
我的代码将崩溃如果我不评论语句else if(message.equals(“假日”))在postexecute上告诉我为什么不进一步如果不Eqal这行(message.equals(“假日”))为什么不打印“学校今天关闭。原因:如果我评论else if(message.equals(“假日”))此代码应用程序工作正常请检查我的if-else语句Android 我的应用程序未在postexecute方法中读取if语句,android,Android,我的代码将崩溃如果我不评论语句else if(message.equals(“假日”))在postexecute上告诉我为什么不进一步如果不Eqal这行(message.equals(“假日”))为什么不打印“学校今天关闭。原因:如果我评论else if(message.equals(“假日”))此代码应用程序工作正常请检查我的if-else语句 String message; public class getDataTask extends AsyncTa
String message;
public class getDataTask extends AsyncTask<Void, Void, Void> {
getDataTask() {
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
yourBoolean=false;
}
@Override
protected Void doInBackground(Void... arg0) {
// TODO Auto-generated method stub
displayData();
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
yourBoolean=true ;
if ((Category_ID.size() > 0) ) {
listCategory.setAdapter(cla);
cla.notifyDataSetChanged() ;
listCategory.invalidateViews();
menu_nametxt.setText(mVal2);
}
else if (message.equals("holiday"))
{
menu_nametxt.setText("No menu available .");
listCategory.setVisibility(View.GONE);
}
else
menu_nametxt.setText("School is off today. Reason: "+mVal3);
listCategory.setVisibility(View.GONE);
}
private void displayData() {
Cursor mCursor3 = db.selectQuery("SELECT * FROM uss_vacation WHERE calendar_id);
if (mCursor3.moveToFirst()) {
do {
Vacation_Date.add(mCursor3.getString(mCursor3.getColumnIndex("date")));
if(mCursor3.getString(mCursor3.getColumnIndex("date")).equals(mydate))
{
message = "holiday";
String mVal ;
mVal = (mCursor3.getString(mCursor3.getColumnIndex("title")));
mVal2 = mVal.toString();
mCursor3.close();
return;
}
} while (mCursor3.moveToNext());
}
mCursor3.close();
}
if i comment this code application print "School is off today. Reason: text
else if (message.equals("holiday"))
// {
// menu_nametxt.setText("No menu available .");
// listCategory.setVisibility(View.GONE);
// }
字符串消息;
公共类getDataTask扩展了AsyncTask{
getDataTask(){
}
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
yourBoolean=false;
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//TODO自动生成的方法存根
显示数据();
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
//TODO自动生成的方法存根
yourBoolean=true;
如果((类别ID.size()>0)){
setAdapter(cla);
cla.notifyDataSetChanged();
listCategory.invalidateViews();
菜单名称txt.setText(mVal2);
}
else if(message.equals(“假日”))
{
menu_nametxt.setText(“没有可用的菜单”);
listCategory.setVisibility(View.GONE);
}
其他的
menu_nametxt.setText(“学校今天放假,原因:+mVal3”);
listCategory.setVisibility(View.GONE);
}
私有void displayData(){
游标mCursor3=db.selectQuery(“从uss\u休假中选择*日历id”);
if(mCursor3.moveToFirst()){
做{
假期日期添加(mCursor3.getString(mCursor3.getColumnIndex(“日期”));
if(mCursor3.getString(mCursor3.getColumnIndex(“日期”)).equals(mydate))
{
message=“假日”;
字符串mVal;
mVal=(mCursor3.getString(mCursor3.getColumnIndex(“title”));
mVal2=mVal.toString();
mCursor3.close();
返回;
}
}while(mCursor3.moveToNext());
}
mCursor3.close();
}
如果我评论此代码,请打印“学校今天停课。原因:文本
else if(message.equals(“假日”))
// {
//menu_nametxt.setText(“没有可用的菜单”);
//listCategory.setVisibility(View.GONE);
// }
由于应用程序第一次运行时消息
为空
,当if-else语句到达else-if(message.equals(“holiday”)
时,它将抛出空点异常
而不是假
,并使应用程序崩溃
看
考虑使用空字符串来初始化消息
。(即消息=”;
)
或
将检查顺序更改为
else if(“holiday.equals(message))
错误是什么?请发布日志?如果出现此else if块,问题是if else语句else if(message.equals(“holiday”))如果取消注释此coce块,代码工作正常else if(message.equals(“holiday”))应用程序崩溃告诉我为什么如果条件不满足其not goes last else语句??一种可能性是因为消息
为null
,因此应用程序抛出NullPointerException
并崩溃应用程序。检查消息
是否有值。消息变量是什么?它的初始位置是什么ize?是包含数据还是为空?您的结果是您的消息吗?应该是消息=结果;