如何在另一个类中使用来自"MainActivity 类"的意图传递数据,而不扩展任何类



我试图使用意图传递数据从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);

最新更新