我想将多个微调器检查值插入到sqlite数据库中

时间:2015-07-26 10:11:58

标签: android sqlite

我的项目是以出勤为基础的。当我选中复选框以标记学生的出勤时,按钮单击它将保存在我的sqlite数据库中。但这里只保存一个值,它是微调器上的最后一个值。

如何在按钮点击其他值时将微调器的多个复选框值存储到数据库中?

这是我的attendancetakerclass

attendancetakerclass

public class AttendanceTracker extends Activity {
    // ArrayList<String> NameList;
    DataBaseHelper dbHelper;
    String classcode;
    SQLiteDatabase db;
    Button save_attendance;
    String type2="student";
    //String type1="student";
    //RadioGroup rg;
    TextView date,time;
    static String class1;
     String type;
     String slot;
    String datetime1;
    String subject, bioid,datevalue,timevalue;
    List<Model> bioid1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.attendancetaker);

         dbHelper=new DataBaseHelper(AttendanceTracker.this);
            this.db=dbHelper.getReadableDatabase();
            date=(TextView)findViewById(R.id.tvdatetime);
            datevalue=date.getText().toString();
            time=(TextView)findViewById(R.id.tvtime);
            timevalue=time.getText().toString();
           String currentDateTimeString = DateFormat.getDateInstance().format(new Date());

         // textView is the TextView view that should display it
           date.setText(currentDateTimeString);

            Time today = new Time(Time.getCurrentTimezone());
            today.setToNow();
            time.setText(today.format("%k:%M:%S"));
             //bioid=dbHelper.getbioid();

            Bundle extras = this.getIntent().getExtras();

            String inputfname1=extras.getString("firstn1");
            String inputlname1=extras.getString("lastn1");
            String inputclass=extras.getString("class");
            String inputsub=extras.getString("sub");
            String inputslot=extras.getString("type");
            String inputprctslot=extras.getString("slot");

            TextView viewfname = (TextView) findViewById(R.id.tvname);
            viewfname.setText(inputfname1);
            TextView viewlname = (TextView) findViewById(R.id.tvsurnamevalue);
            viewlname.setText(inputlname1);
            TextView viewclass = (TextView) findViewById(R.id.tvclassvalue);
            viewclass.setText(inputclass);
            classcode = viewclass.getText().toString();
            TextView viewsub = (TextView) findViewById(R.id.tvsubjectname);
            viewsub.setText(inputsub);
            subject = viewsub.getText().toString();
            TextView viewslot = (TextView) findViewById(R.id.tvslotvalue);
            viewslot.setText(inputslot);
            type = viewslot.getText().toString();
            TextView viewprcts = (TextView) findViewById(R.id.tvprctsvalue);
            viewprcts.setText(inputprctslot);
            slot = viewprcts.getText().toString();

            ListView studentList=(ListView)findViewById(R.id.take_attend_list);
            bioid1=this.getbioid();
            ArrayAdapter<Model> adapter = new MyAdapter(this,getdata(),getdatalname(),getbioid());

            studentList.setAdapter(adapter);
    }
public List<Model> getdata()
    {

      List<Model> list = new ArrayList<Model>();
        Cursor cursor =db.rawQuery("SELECT firstname FROM users WHERE type='"+type2+"' AND class_code='"+classcode+"'", null);
        //Cursor cursor = db.rawQuery("SELECT firstname,lastname FROM attndrecords", null);
        if(cursor.moveToFirst())
        {
            do
            {
                list.add(get(cursor.getString(cursor.getColumnIndex("firstname"))));
                //list.add(get(cursor.getString(cursor.getColumnIndex("lastname"))));
              // bioid= cursor.getString(cursor.getColumnIndex("bioid"));
               //list.add(get(cursor.getString(cursor.getColumnIndex("bioid"))));
            }while(cursor.moveToNext());
        }

        return list;

    }

public List<Model> getbioid()
{

  List<Model> list = new ArrayList<Model>();
    Cursor cursor =db.rawQuery("SELECT bioid FROM users WHERE type='"+type2+"' AND class_code='"+classcode+"'", null);
    //Cursor cursor = db.rawQuery("SELECT firstname,lastname FROM attndrecords", null);
    if(cursor.moveToFirst())
    {
        do
        {
            //list.add(get(cursor.getString(cursor.getColumnIndex("firstname"))));
            //list.add(get(cursor.getString(cursor.getColumnIndex("lastname"))));
          // bioid= cursor.getString(cursor.getColumnIndex("bioid"));
           list.add(get(cursor.getString(cursor.getColumnIndex("bioid"))));
        }while(cursor.moveToNext());
    }

    return list;

}

private Model get(String string) {
    // TODO Auto-generated method stub
    return new Model(string, string, string);
}
public List<Model> getdatalname()
{

    List<Model> listlname = new ArrayList<Model>();
    Cursor cursor =db.rawQuery("SELECT lastname FROM users WHERE type='"+type2+"' AND class_code='"+classcode+"'", null);
    //Cursor cursor = db.rawQuery("SELECT firstname,lastname FROM attndrecords", null);
    if(cursor.moveToFirst())
    {
        do
        {
            //list.add(cursor.getString(cursor.getColumnIndex("firstname")));
            listlname.add(get(cursor.getString(cursor.getColumnIndex("lastname"))));
        }while(cursor.moveToNext());
    }

    return listlname;

}
/*public String getbioid()
{
    String query = "SELECT bioid FROM users WHERE type='" +type2+"' AND class_code='"+classcode+"'";
        Cursor cursor=db.rawQuery(query, null);
       if(cursor.getCount()<0) // UserName Not Exist
       {
        cursor.close();
        return "NOT EXIST";
       }
        cursor.moveToFirst();
        String bioid= cursor.getString(cursor.getColumnIndex("bioid"));
        cursor.close();
        return bioid;
}*/
public void insertdata()
{
    StringBuffer sb = new StringBuffer();

    // Retrive Data from list
    for (Model bean : bioid1) {

        if (bean.isSelected()) {
            sb.append(bean.getBioid());
            //sb.append(",");
            Toast.makeText(this, sb.toString().trim(), 1000);
        }
    }
       String query = "INSERT INTO '"+classcode+"'(bioid,date,time,subject,slot) VALUES('"+sb+"','"+datevalue+"','"+timevalue+"','"+subject+"','"+slot+"')";
        Cursor cursor=db.rawQuery(query, null);
       if(cursor.getCount()<0) // UserName Not Exist
       {
        cursor.close();
        return;
       }
        cursor.moveToFirst();
        cursor.close();
}


/*public void savedata(String bioid,String datevalue,String timevalue,String subject,String slot) {
    // TODO Auto-generated method stub


    ContentValues values = new ContentValues();
    values.put("bioid", bioid);
    values.put("date", datevalue);
    values.put("time", timevalue);
    values.put("subject", subject);
    values.put("slot", slot);
    db.insert(classcode, null, values);

    db.close();
}*/


public void submit_details(View v)
   {
    //savedata(bioid, datevalue, timevalue, subject, slot);
    insertdata();
    Toast.makeText(AttendanceTracker.this, "Saved", Toast.LENGTH_LONG).show();
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
     alertDialogBuilder.setMessage("Attendance Submitted Successfully. Please Connect the Device to WiFi");

     alertDialogBuilder.setPositiveButton("yes", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface arg0, int arg1) {
            Intent i = new Intent(AttendanceTracker.this, Attendance.class);
            startActivity(i);
        }
     });

     alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
           finish();      }
     });

     AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();

   }
}

我的出席情况

package com.edbeans.attendance;

public class AttendancePOJO {

    String bioid;
    String date;
    String time;
    String subject;
    String slot;

public AttendancePOJO()
{


}
public AttendancePOJO(String bioid, String date, String time,String subject, String slot)
{
   this.bioid=bioid;
   this.date=date;
   this.time=time;
   this.subject=subject;
   this.slot=slot;
}
public String getBioid() {
    return bioid;
}
public void setBioid(String bioid) {
    this.bioid = bioid;
}
public String getDate() {
    return date;
}
public void setDate(String date) {
    this.date = date;
}
public String getTime() {
    return time;
}
public void setTime(String time) {
    this.time = time;
}
public String getSubject() {
    return subject;
}
public void setSubject(String subject) {
    this.subject = subject;
}
public String getSlot() {
    return slot;
}
public void setSlot(String slot) {
    this.slot = slot;
}
}


--------------------------------------------------------------------------------


## My custom adapter ##

<pre><code>package com.edbeans.attendance;

import java.util.List;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

public class MyAdapter extends ArrayAdapter<Model> {

      private final List<Model> list;
      private final List<Model> list2;
      private final List<Model> list3;
      private final Activity context;

      public MyAdapter(Activity context, List<Model> list, List<Model> list2, List<Model> list3) {
        super(context, R.layout.attend_layout, list);
        this.context = context;
        this.list = list;
        this.list2=list2;
        this.list3=list3;
      }


    static class ViewHolder {
        protected TextView text;
        protected CheckBox checkbox;


      }

      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
        View view = null;
        if (convertView == null) {
          LayoutInflater inflator = context.getLayoutInflater();
          view = inflator.inflate(R.layout.attend_layout, null);
          final ViewHolder viewHolder = new ViewHolder();
          viewHolder.text = (TextView) view.findViewById(R.id.tvstudentfname);
          viewHolder.checkbox = (CheckBox) view.findViewById(R.id.checkBox1);
          viewHolder.checkbox
              .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                  Model element = (Model) viewHolder.checkbox
                      .getTag();
                  element.setSelected(buttonView.isChecked());

                }
              });
          view.setTag(viewHolder);
          viewHolder.checkbox.setTag(list.get(position));
        } else {
          view = convertView;
          ((ViewHolder) view.getTag()).checkbox.setTag(list.get(position));
        }
        ViewHolder holder = (ViewHolder) view.getTag();
        holder.text.setText(list.get(position).getName()+ " " + list2.get(position).getLname()+" " + list3.get(position).getBioid());
       // holder.text(list3.get(position));
        holder.checkbox.setChecked(list.get(position).isSelected());
        return view;
      }
    } 

如何存储所有选中的值意味着所有学生的生物量和日期时间等级?如何在单击按钮时一次存储多个值?

0 个答案:

没有答案