我试图使用意图传递数据从MainActivity类下面到DBManager类,但我已经失败了。
所以请告诉我如何使用意图数据从另一个类我会很感激的。
public class MainActivity extends Activity{
private ViewPager mPager;
private DBManager dbManager;
private DatePicker datePicker;
String selectedDate;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pager);
dbManager = new DBManager(getApplicationContext(),"Calorie_test1.db",null,1);
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(new PagerAdapterClass(getApplicationContext()));
mPager.setCurrentItem(1);
mPager.setPageTransformer(false, new ViewPager.PageTransformer()
{
@Override
public void transformPage(View page, float position)
{
// TODO Auto-generated method stub
float normalizedposition = Math.abs(1 - Math.abs(position));
page.setAlpha(normalizedposition);
page.setScaleX(normalizedposition / 2 + 0.5f);
page.setScaleY(normalizedposition / 2 + 0.5f);
page.setRotationY(position * 80);
}
});
}
/*@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}*/
private void setCurrentInflateItem(int type){
if(type==0){
mPager.setCurrentItem(0);
}else if(type==1){
mPager.setCurrentItem(1);
}else{
mPager.setCurrentItem(2);
}
}
/**
* PagerAdapter
*/
private class PagerAdapterClass extends PagerAdapter
{
private LayoutInflater mInflater;
public PagerAdapterClass(Context c){
super();
mInflater = LayoutInflater.from(c);
}
@Override
public int getCount() {
return 3;
}
@Override
public Object instantiateItem(View pager, int position) {
View v = null;
ProgressBar progressExercise;
ProgressBar progressFood;
int exerciseCalorie;
int calorie;
if(position==0){
v = mInflater.inflate(R.layout.side_menu, null);
}
else if(position==1){
v = mInflater.inflate(R.layout.activity_main, null);
datePicker = (DatePicker)v.findViewById(R.id.datepicker);
datePicker.init(datePicker.getYear(),
datePicker.getMonth(),
datePicker.getDayOfMonth(),
new DatePicker.OnDateChangedListener()
{
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
*selectedDate* = String.format("%d%d%d",year,monthOfYear+1,dayOfMonth);
//Intent intent = new Intent(MainActivity.this,DBManager.class);
//intent.putExtra("selectedDate",uri.toString());
//uri = intent.getParcelableExtra("uri");
Intent intent = new Intent(MainActivity.this,DBManager.class);
intent.putExtra("selectedDate",selectedDate);
}
});
//Intent intent = getIntent();
//int calorieExercise = intent.getIntExtra("calorieExercise",0);
progressExercise = (ProgressBar)v.findViewById(R.id.progressExercise);
progressExercise.setMax(500);
//progressExercise.setProgress(calorieExercise);
progressExercise.setProgress(dbManager.getExercise_Calorie());
//int calorieFood = intent.getIntExtra("calorieFood",0);
progressFood = (ProgressBar)v.findViewById(R.id.progressCalorie);
progressFood.setMax(2400);
progressFood.setProgress(dbManager.getFood_Calorie());
}else if(position== 2){
v = mInflater.inflate(R.layout.program_list, null);
v.findViewById(R.id.btn_food).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, FoodsearchActivity.class);
startActivity(intent);
finish();
}
});
v.findViewById(R.id.btn_exercise).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this,ExerciseActivity.class);
startActivity(intent);
finish();
}
});
v.findViewById(R.id.btn_fermeted).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this,FermentedActivity.class);
startActivity(intent);
finish();
}
});
}
((ViewPager)pager).addView(v, 0);
return v;
}
@Override
public void destroyItem(View pager, int position, Object view) {
((ViewPager)pager).removeView((View)view);
}
@Override
public boolean isViewFromObject(View pager, Object obj) {
return pager == obj;
}
@Override public void restoreState(Parcelable arg0, ClassLoader arg1) {}
@Override public Parcelable saveState() { return null; }
@Override public void startUpdate(View arg0) {}
@Override public void finishUpdate(View arg0) {}
}
}
///
public class DBManager extends SQLiteOpenHelper{
public DBManager(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE test_table(_id INTEGER PRIMARY KEY AUTOINCREMENT, calorie_exercise INTEGER, calorie_food INTEGER, date_ TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
}
public void insert(String _query)
{
SQLiteDatabase db = getWritableDatabase();
db.execSQL(_query);
db.close();
}
public int getExercise_Calorie()
{
SQLiteDatabase db = getReadableDatabase();
int calorie = 0;
//Intent selectedDate = Intent.getIntent("selectedDate");
//String date = selectedDate.getStringExtra("selectedDate");
Test aa = new Test();
String date = aa.getSelectedDate();
Log.d("log.d",String.valueOf(date));
Cursor cursor = db.rawQuery("select * from test_table where date_ = '" + date + "';", null);
//Cursor cursor = db.rawQuery("select * from test_table",null);
while(cursor.moveToNext())
{
calorie += cursor.getInt(1);
}
return calorie;
}
public int getFood_Calorie()
{
SQLiteDatabase db = getReadableDatabase();
int calorie = 0;
Cursor cursor = db.rawQuery("select * from test_table",null);
while(cursor.moveToNext())
{
calorie += cursor.getInt(2);
}
return calorie;
}
}
在Intent中放入数据后还没有开始下一个activity
Intent intent = new Intent(MainActivity.this,DBManager.class);
intent.putExtra("selectedDate",selectedDate);
startActivity(intent);