如何使呼叫活动(prepopup)等待完成被叫活动(考勤)任务?

时间:2015-09-05 10:51:32

标签: android performance android-intent android-activity

public void startAttendance(View view)
{
    Spinner sp=(Spinner) findViewById(R.id.tablepass);
    tbl_nm=sp.getSelectedItem().toString();
    if(checkForEntries()!=0) {
        Cursor c = db.rawQuery("select * from "+ tbl_nm, null);
            if(c!=null) {
               if (c.moveToFirst())
                do {

                   String n1 = c.getString(c.getColumnIndex("Name"));
                   String n2 = c.getString(c.getColumnIndex("Branch"));
                   Intent i = new Intent(this, Attendance.class);
                   Bundle b = new Bundle();
                   b.putString("n1", n1);
                   b.putString("n2", n2);
                   b.get("n1");
                   b.get("n2");
                   i.putExtras(b);
                   startActivity(i);
                   SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
                   String attendance = sharedPref.getString("attendance", "default");
                   ContentValues cv = new ContentValues();
                   cv.put("attendance", attendance);
                   db.insertOrThrow(tbl_nm, null, cv);
                   Toast.makeText(this, "Entered", Toast.LENGTH_SHORT).show();
               }while(c.moveToNext());
               }
               }

}

****出勤活动****

public class Attendance extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_attendance);
    Intent i=getIntent();
    Bundle b=i.getExtras();
    String name=b.getString("n1");
    String branch=b.getString("n2");
    TextView tv5=(TextView) findViewById(R.id.textView5);
    TextView tv6=(TextView) findViewById(R.id.textView6);
    tv5.setText(name);
    tv6.setText(branch);
}

public void check(View v)
{
    SharedPreferences sharedPref;
    SharedPreferences.Editor editor;
    switch (v.getId())
    {

        case R.id.button6:
            sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
            editor = sharedPref.edit();
            editor.putString("attendance","present");
            editor.commit();
            break;
        case R.id.button7:
            sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
            editor = sharedPref.edit();
            editor.putString("attendance","absent");
            editor.commit();
            break;


    }
    finish();
  }
}

1 个答案:

答案 0 :(得分:0)

我猜你在这里使用了错误的方法,你从本地数据库获取数据,并为每个记录调用另一个活动。这就是为什么要创建出勤活动的多个实例的原因。

首先应该获取所有记录并将它们存储在arrayList中,使用此arrayList中的数据显示一个微调器,并在选择了微调器中的项目时,然后导航到Attendance Activity。 理想情况下,这应该是方法,因为假设有200条记录,想象一下将创建多少个活动出勤实例, 第二件事,如果必须操纵这些记录并且两个活动相互依赖,我不认为用户每次点击按钮都会等待200条记录弹出。

让我知道它是否适合您和您的想法, 将其标记为答案,以便对其他人有用......