android如何在获得Specsific值后终止函数并返回asyntask
如何在特定点终止函数我使用中断,但它不工作请帮助我,当当前日期与数据库匹配时,请不要继续,函数关闭中断不工作有其他建议吗android如何在获得Specsific值后终止函数并返回asyntask,android,Android,如何在特定点终止函数我使用中断,但它不工作请帮助我,当当前日期与数据库匹配时,请不要继续,函数关闭中断不工作有其他建议吗 public class getDataTask extends AsyncTask<Void, Void, Void> { getDataTask() { } @Override protected void onPreExecute() { // TODO Auto-gene
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 ;
listCategory.setAdapter(cla);
menu_nametxt.setText(mVal2);
}
private void displayData() {
Cursor mCursor2 = db.selectQuery("SELECT s.name ASxxxx ORDER BY md.sort ASC");
if (mCursor2.moveToFirst()) {
do {
Calendar_id =(mCursor2.getString(mCursor2.getColumnIndex("calendar_id")));
} while (mCursor2.moveToNext());
}
mCursor2.close();
Cursor mCursor3 = db.selectQuery("SELECT * FROM uss_vacation WHERE calendar_id =
'"+Calendar_id+"' ");
if (mCursor3.moveToFirst()) {
do {
Vacation_Date.add(mCursor3.getString(mCursor3.getColumnIndex("date")));
if(mCursor3.getString(mCursor3.getColumnIndex("date")).equals(mydate))
{
String mVal ;
mVal =
(mCursor3.getString(mCursor3.getColumnIndex("title")));
//
mVal3 = mVal;
//////////////////////////////help here//////////////////////
i want function displayData(); close at this like and not processing further any idea?? i used
break but is not work
break;
}
} while (mCursor3.moveToNext());
}
mCursor3.close();
Cursor mCursor = db.selectQuery("SELECT s.name '"+Meal_groupid+"' ORDER BY md.sort ASC");
Category_ID.clear();
school_name.clear();
menu_name.clear();
dish_name.clear();
dish_ID.clear();
day.clear();
if (mCursor.moveToFirst()) {
do {
zero1check = valll.toString();
if (zero1check.equals("0"))
byweekdate = Todayday + 1;
else if (zero1check.equals("1")) {
byweekdate = Todayday + 2;
}
school_name.add(mCursor.getString(mCursor.getColumnIndex("school_name")));
String Scdedulechk;
Scdedulechk=(mCursor.getString(mCursor.getColumnIndex("Schedule")));
Schedule.add(mCursor.getString(mCursor.getColumnIndex("Schedule")));
day.add(mCursor.getString(mCursor.getColumnIndex("day")));
String chkdate;
chkdate=(mCursor.getString(mCursor.getColumnIndex("day")));
if ((Scdedulechk).equals("weekly")) {
if ((chkdate).equals(Todayday)) {
menu_name.add(mCursor.getString(mCursor.getColumnIndex("menu_title")));
String menu_title;
menu_title=
(mCursor.getString(mCursor.getColumnIndex("menu_title")));
mVal2=menu_title.toString();
dish_name.add(mCursor.getString(mCursor.getColumnIndex("dish_name")));
dish_ID.add(mCursor.getString(mCursor.getColumnIndex("dish_id")));
Category_ID.add(mCursor.getString(mCursor.getColumnIndex("calendar_id")));
}
}
else
if ((Scdedulechk).equals("biweekly")) {
if ((chkdate).equals(byweekdate)) {
menu_name.add(mCursor.getString(mCursor.getColumnIndex("menu_title")));
dish_name.add(mCursor.getString(mCursor.getColumnIndex("dish_name")));
dish_ID.add(mCursor.getString(mCursor.getColumnIndex("dish_id")));
Category_ID.add(mCursor.getString(mCursor.getColumnIndex("calendar_id")));
}
}
} while (mCursor.moveToNext());
}
mCursor.close();
}
公共类getDataTask扩展了AsyncTask{
getDataTask(){
}
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
yourBoolean=false;
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//TODO自动生成的方法存根
显示数据();
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
//TODO自动生成的方法存根
yourBoolean=true;
setAdapter(cla);
菜单名称txt.setText(mVal2);
}
私有void displayData(){
游标mCursor2=db.selectQuery(“按md.sort ASC选择s.name ASxxxx ORDER”);
if(mCursor2.moveToFirst()){
做{
日历id=(mCursor2.getString(mCursor2.getColumnIndex(“日历id”)));
}while(mCursor2.moveToNext());
}
mCursor2.close();
游标mCursor3=db.selectQuery(“选择*从uss\u休假,其中日历\u id=
“+日历id+”);
if(mCursor3.moveToFirst()){
做{
假期日期添加(mCursor3.getString(mCursor3.getColumnIndex(“日期”));
if(mCursor3.getString(mCursor3.getColumnIndex(“日期”)).equals(mydate))
{
字符串mVal;
mVal=
(mCursor3.getString(mCursor3.getColumnIndex(“title”));
//
mVal3=mVal;
//////////////////////////////帮帮我//////////////////////
我想要函数displayData();像这样关闭,不进一步处理我使用的任何想法
休息但不是工作
打破
}
}while(mCursor3.moveToNext());
}
mCursor3.close();
Cursor mCursor=db.selectQuery(“选择s.name'+膳食\组ID+”'按md.sort ASC排序”);
类别_ID.clear();
学校名称。清除();
菜单名称。清除();
菜名。清除();
洗碗碟清洁();
天,晴朗;
if(mCursor.moveToFirst()){
做{
zero1check=valll.toString();
if(zero1check.equals(“0”))
byweekdate=今天+1;
else if(zero1check.equals(“1”)){
按工作日=今天+2;
}
school_name.add(mCursor.getString(mCursor.getColumnIndex(“school_name”));
字符串Scdedulechk;
Scdedulechk=(mCursor.getString(mCursor.getColumnIndex(“Schedule”));
add(mCursor.getString(mCursor.getColumnIndex(“Schedule”));
day.add(mCursor.getString(mCursor.getColumnIndex(“day”));
字符串chkdate;
chkdate=(mCursor.getString(mCursor.getColumnIndex(“日”));
如果((Scdedulechk).equals(“每周”)){
如果((chkdate).equals(今天)){
menu_name.add(mCursor.getString(mCursor.getColumnIndex(“menu_title”));
字符串菜单标题;
菜单标题=
(mCursor.getString(mCursor.getColumnIndex(“菜单标题”));
mVal2=菜单标题.toString();
dish_name.add(mCursor.getString(mCursor.getColumnIndex(“dish_name”));
dish_ID.add(mCursor.getString(mCursor.getColumnIndex(“dish_ID”));
Category_ID.add(mCursor.getString(mCursor.getColumnIndex(“calendar_ID”));
}
}
其他的
如果((Scdedulechk).equals(“双周”)){
if((chkdate).equals(byweekdate)){
menu_name.add(mCursor.getString(mCursor.getColumnIndex(“menu_title”));
dish_name.add(mCursor.getString(mCursor.getColumnIndex(“dish_name”));
dish_ID.add(mCursor.getString(mCursor.getColumnIndex(“dish_ID”));
Category_ID.add(mCursor.getString(mCursor.getColumnIndex(“calendar_ID”));
}
}
}while(mCursor.moveToNext());
}
mCursor.close();
}
将中断
替换为返回
中断
只会中断循环,返回
“停止”方法。将函数的返回类型从void更改为int或else,并在所需操作完成时返回任何内容。
例如
在这里,我要诚实地指出,你的代码令人厌恶。不管有没有技能,代码的草率都是没有意义的。请正确格式化你的代码,尤其是大括号,这是不可能的。还请解释什么“不起作用”意思是。请,如果您将来提出任何问题,请花时间正确格式化您的代码(例如,确保缩进正确)而且只包括相关的代码。太好了,我们现在正在SO教授Java基础知识。好吧,这是我最好的猜测。实际上,我不想阅读上面所有可怕的代码。我不是在敲你的答案——我对像这样的大量缺乏基础知识的问题感到恼火。
int test_func(){
//your code here
if(actionCompleted){
return 1;
// function will be closed
}
else
//your code
return 0;
}