Android 单击“保存”按钮后,如何获取listview中的数据并将其插入数据库

Android 单击“保存”按钮后,如何获取listview中的数据并将其插入数据库,android,listview,Android,Listview,我有一个列表视图,其中包含一个没有学生姓名的卷和点击保存按钮时的出勤状态。如何获取列表视图中的数据并将其插入数据库 这是我尝试过的代码,但是数据没有插入数据库 MainActivity.java import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import an

我有一个列表视图,其中包含一个没有学生姓名的卷和点击保存按钮时的出勤状态。如何获取列表视图中的数据并将其插入数据库

这是我尝试过的代码,但是数据没有插入数据库

MainActivity.java

import android.app.Activity; 
 import android.os.AsyncTask; 
 import android.os.Bundle;
 import android.util.Log; 
 import android.view.View;
 import android.widget.Button;
 import android.widget.SimpleAdapter; 
 import android.widget.Toast;
 import org.json.JSONArray; 
 import org.json.JSONException; 
 import org.json.JSONObject;
 import java.util.ArrayList; 
 import java.util.Calendar; 
 import java.util.HashMap;

 public class MainActivity extends Activity implements
 View.OnClickListener {
     private String TAG = MainActivity.class.getSimpleName();
     private ProgressDialog pDialog;
     private ListView lv;
     ArrayList<HashMap<String, String>> contactList;
     ArrayList<HashMap<String, String>> contactListx;
     ArrayList<String> rollNo;
     ArrayList<String> SName;
     ArrayList<String> status;
     ArrayList<String> staDivision;
     private int current = 0;
     Button button;


     DatabaseHandler databaseHandler;


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

         new Timetable().execute();

         contactList = new ArrayList<>();
         contactListx = new ArrayList<>();
         rollNo = new ArrayList<>();
         SName = new ArrayList<>();
         status = new ArrayList<>();
         staDivision = new ArrayList<>();
         save = (Button) findViewById(R.id.save);


         lv = (ListView) findViewById(R.id.listview);




       onButtonClickListener();
     }




     }

     public void onButtonClickListener() {
         save.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 databaseHandler = new DatabaseHandler(getApplicationContext());
                 databaseHandler.addSelected(rollNo,staDivision, SName,status);
                 Toast.makeText(getApplication(), "Inserted", Toast.LENGTH_SHORT).show();

                 //post();


             }
         });



     }

     private class Timetable extends AsyncTask<Void, Void, Void> {

         @Override
         protected Void doInBackground(Void... params) {
             HttpHandler sh = new HttpHandler();
             String url = "my link ";
             String jsonStr = sh.makeServiceCall(url);
             Log.e(TAG, "Responce from url:" + jsonStr);

             if (jsonStr != null) {
                 try {
                     JSONArray jsonArray = new JSONArray(jsonStr);


                     for (int i = 0; i < jsonArray.length(); i++) {
                         JSONObject c = jsonArray.getJSONObject(i);


                         String RollNo = c.getString("RollNo");
                         //Log.d("insert",""+RollNo);
                         String StudentName = c.getString("StudentName");
                         String Status = c.getString("Status");
                         String StadDivRollNoId = c.getString("StadDivRollNoId");


                         HashMap<String, String> monday = new HashMap<>();

                         monday.put("StadDivRollNoId", StadDivRollNoId);
                         monday.put("RollNo", RollNo);
                         monday.put("StudentName", StudentName);
                         monday.put("Status", Status);


                         contactList.add(monday);

                     }
                 } catch (final JSONException e) {
                     Log.e(TAG, "Json parsing error: " + e.getMessage());
                     runOnUiThread(new Runnable() {
                         public void run() {
                             Toast.makeText(getApplicationContext(),
                                     "Json parsing error: " + e.getMessage(),
                                     Toast.LENGTH_LONG)
                                     .show();
                         }
                     });
                 }
             } else {
                 Log.e(TAG, "Couldn't get json from server.");
                 runOnUiThread(new Runnable() {
                     @Override
                     public void run() {
                         Toast.makeText(getApplicationContext(),
                                 "Couldn't get json from server. Check LogCat for possible errors!",
                                 Toast.LENGTH_LONG)
                                 .show();
                     }
                 });

             }
             //onButtonClickListener1();
             return null;

         }



             @Override
             protected void onPreExecute() {
                 super.onPreExecute();
                 // Showing progress dialog
                 pDialog = new ProgressDialog(MainActivity.this);
                 pDialog.setMessage("Please wait...");
                 pDialog.setCancelable(false);
                 pDialog.show();

             }

             protected void onPostExecute(Void result) {
                 super.onPostExecute(result);

                 if (pDialog.isShowing())
                     pDialog.dismiss();

                 ListAdapter adapter = new SimpleAdapter(
                         MainActivity.this, contactList,
                         R.layout.list_item, new String[]{"RollNo", "StudentName",
                         "Status"}, new int[]{R.id.SubjectName,
                         R.id.StandardName, R.id.status});

                 lv.setAdapter(adapter);


             }


         }
   }
导入android.app.Activity;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.simpledapter;
导入android.widget.Toast;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.Calendar;
导入java.util.HashMap;
公共类MainActivity扩展活动实现
View.OnClickListener{
私有字符串标记=MainActivity.class.getSimpleName();
私人对话;
私有ListView lv;
ArrayList联系人列表;
ArrayList contactListx;
ArrayList rollNo;
ArrayList SName;
阵列列表状态;
ArrayList staDivision;
专用int电流=0;
按钮;
DatabaseHandler DatabaseHandler;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
新时间表().execute();
contactList=新的ArrayList();
contactListx=新的ArrayList();
rollNo=新的ArrayList();
SName=newarraylist();
状态=新建ArrayList();
statdivision=newarraylist();
save=(按钮)findViewById(R.id.save);
lv=(ListView)findViewById(R.id.ListView);
onButtonClickListener();
}
}
public void onButtonClickListener(){
save.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
databaseHandler=新的databaseHandler(getApplicationContext());
databaseHandler.addSelected(rollNo、staDivision、SName、status);
Toast.makeText(getApplication(),“Inserted”,Toast.LENGTH_SHORT.show();
//post();
}
});
}
私有类任务{
@凌驾
受保护的Void doInBackground(Void…参数){
HttpHandler sh=新的HttpHandler();
字符串url=“我的链接”;
字符串jsonStr=sh.makeServiceCall(url);
Log.e(标记“response from url:+jsonStr”);
if(jsonStr!=null){
试一试{
JSONArray JSONArray=新JSONArray(jsonStr);
for(int i=0;i
DatabaseHandler.java

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import java.util.ArrayList;

public class DatabaseHandler extends SQLiteOpenHelper {


    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_NAME = "MyDatabase";


    private static final String Attendance = "MyListItem";
    private static final String RollNo = "RollNo";
    private static final String studentName = "studentName";
    private static final String StatusArray = "StatusArray";
    private static final String stadDivRollNoId = "stadDivRollNoId";
    // Table Columns names

    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }


    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_LIST_TABLE = "CREATE TABLE " + Attendance + "("+ RollNo+"INTEGER"+ stadDivRollNoId
                + " INTEGER," +studentName+ " TEXT" + StatusArray + " TEXT" +")";

        db.execSQL(CREATE_LIST_TABLE);
    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS " + Attendance);

        // Create tables again
        onCreate(db);
    }
    public void addSelected(ArrayList<String> Rollno,

                            ArrayList<String>statusArray,
                            ArrayList<String>StadDivRollNoId,
                            ArrayList<String> StudentName

    ) {

        int size = Rollno.size();


        SQLiteDatabase db = getWritableDatabase();
        try{
            for (int i = 0; i < size; ++i) {
                ContentValues cv = new ContentValues();
                cv.put(RollNo, Rollno.get(i));
                Log.d("rollno inserted",""+Rollno.get(i));
                cv.put(stadDivRollNoId,StadDivRollNoId.get(i));
                Log.d("stadDivRoll inserted",""+StadDivRollNoId.get(i));
                cv.put(studentName,StudentName.get(i));
                Log.d("StudentName",""+StudentName.get(i));
                cv.put(StatusArray, statusArray.get(i));
                Log.d("StatusArray inserting",""+statusArray.get(i));




                db.insertOrThrow(Attendance, null, cv);
                Log.d("Inserted",""+cv);
            }
            db.close();
        } catch (Exception e){
            Log.e("Problem", e + " ");
        }
    }


}
导入android.content.ContentValues;
导入android.content.Context;
导入android.database.sqlite.SQLiteDatabase;
导入android.database.sqlite.SQLiteOpenHelper;
导入android.util.Log;
导入java.util.ArrayLi
rollNo,staDivision, SName,status
private void popuateLists(int count){
    staDivision.add(contactList.get(count).get("StadDivRollNoId"));

    rollNo.add(contactList.get(count).get("RollNo"));

    ... do the rest

}