2013-10-10 69 views
0

任何人都可以幫我解釋爲什麼函數getInBackground沒有運行我想從android中解析數據。 這是我的類,它調用的fetchData(String themeId)的功能parseManipulate在android中解析getInBackground函數未運行

public class selectTheme extends Activity implements OnClickListener{ 

Button gBtn; 
Button rBtn; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.themeselection); 

    String themeid = "ECGo4oSKgU"; 
    ParseManipulate pm = new ParseManipulate(); 

    pm.fetchData(themeid); 


/*  gBtn = (Button)findViewById(R.id.greentheme); 
    rBtn = (Button)findViewById(R.id.redtheme); 

    gBtn.setOnClickListener(this); 
    rBtn.setOnClickListener(this); 
*/ 
} 

這是ParseManipulate class.compiler我fetchData()函數不運行功能getInBackground()函數和函數結尾跳到閉架

public class ParseManipulate { 

    public void fetchData(String ThemeId) 
    { 

    ParseQuery<ParseObject> pq = ParseQuery.getQuery("testThemes"); 

    pq.getInBackground(ThemeId, new GetCallback<ParseObject>(){ 

     @Override 
     public void done(ParseObject object, ParseException e) { 
      // TODO Auto-generated method stub 
      if(e == null) 
      { 
      // value = object.getString("ThemeName"); 
       Log.d("ParseObject", ""+object.getString("ThemeName")); 
      } 
      else 
      { 
      // Toast.makeText(getApplicationContext(), "error in data fetching", Toast.LENGTH_SHORT).show(); 
      } 
     } 

    }); 
    } 
} 
+0

從它的聲音中,您正在使用調試器,並逐行掃描代碼行。在這種情況下,代碼將跳過getInBackground()調用的內容,因爲代碼將在異步操作完成時調用。根據查詢的複雜性和互聯網問題,在調用getInBackground()後,這可能是第二次或更多次。 –

+0

@TimothyWalters thanx bro我已經完成了這項工作:) –

回答

0
Instead of  

Log.d("ParseObject", ""+object.getString("ThemeName")); 

使用方法如下

Log.d("ParseObject", ""+object.fetchIfNeeded().getString("ThemeName")); 
相關問題