2013-08-19 40 views
0

我尝试从MenuActivity启动我的应用程序到RecipesActivity。在RecipesActivity中,我尝试从表中选择元素,这是我在DataBase类(DataBase.java)中创建的。现在这个表是空的。调试器不能帮助我,我不知道为什么应用程序崩溃,也许是因为现在表空了。 MenuActivity.java程序从一个活动转到另一个活动时,应用程序崩溃

RecipesActivity.java

致谢
public class RecipesActivity extends Activity implements OnClickListener { 

static final public int AddingRecipe = 0; 
static final public int EditingRecipe = 1; 
//static final public String EditRecipe = "EditRecipe"; 
static final public String RecipeId = "RecipeId"; 
static final public String ShowRecipe = "ShowRecipe"; 
LinearLayout ll; 
DataBase sqh; 
SQLiteDatabase sqdb; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_recipes); 

ll = (LinearLayout)findViewById(R.id.llRecipes); 

sqh = new DataBase(this); 

sqdb = sqh.getWritableDatabase();  

Cursor cursor = sqdb.rawQuery("SELECT _id, Name, Doctor FROM Disease", null); 

while (cursor.moveToNext()) { 

    LinearLayout ll2 = new LinearLayout(this); 
    ll2.setOrientation(LinearLayout.HORIZONTAL); 
    final TextView tv = new TextView(this); 
    tv.setId(cursor.getInt(cursor.getColumnIndex("_id"))); 
    tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    String disease = cursor.getString(cursor.getColumnIndex("Name")); 
    String doctor = cursor.getString(cursor.getColumnIndex("Doctor")); 
    tv.setText(disease +"\nВрач: "+ doctor); 
    ll2.addView(tv); 
    ImageButton edit = new ImageButton(this); 
    edit.setId(cursor.getInt(cursor.getColumnIndex("_id"))); 
    edit.setClickable(true); 
    edit.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      //TextView tv2 = tv; 
      Intent i3 = new Intent(RecipesActivity.this, AddEditRecipesActivity.class); 
      i3.addFlags(EditingRecipe); 
      i3.putExtra(RecipeId, v.getId()); 
      //i3.putExtra(EditRecipe, tv2.getText().toString()); 
      //startActivityForResult(i3, EditingRecipe); 
      startActivity(i3); 
     } 
    }); 
    edit.setBackgroundResource(R.drawable.edit); 
    ll2.addView(edit); 
    ImageButton go = new ImageButton(this); 
    go.setId(cursor.getInt(cursor.getColumnIndex("_id"))); 
    go.setClickable(true); 
    go.setBackgroundResource(R.drawable.go); 
    go.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i3 = new Intent(RecipesActivity.this, MedicineActivity.class); 
      i3.putExtra(ShowRecipe, v.getId()); 
      RecipesActivity.this.startActivity(i3); 
     } 
    }); 
    ll2.addView(go); 
    ll.addView(ll2); 
} 

} 
    } 

部分

case R.id.recipes: 
    case R.id.iconrecipes: 
     Intent i2 = new Intent(this, RecipesActivity.class); 
     this.startActivity(i2); 
     break; 

一部分。

+2

安置自己的logcat的堆栈跟踪,请! – Pavlos

+1

adb logcat(我最好的猜测是你没有在清单中定义你的Activity)。但这只是一个猜测而没有看到你的日志消息。 – Booger

+0

这个代码是在OnClickListener中吗?如果是这样的话,问题是'Intent i2 = new Intent(this,RecipesActivity.class);'。应该是'意图i2 =新的意图(ActivityName.this,RecipesActivity.class);'如果这不是问题,那么请编辑并发布logcat – codeMagic

回答

0

检查光标对象不为空,那么只有里面去......

if(cursor !=null){ 
while (cursor.moveToNext()) { 
. 
. 
. 
} 
} 
相关问题