Android 单击“保存”按钮后,如何获取listview中的数据并将其插入数据库
我有一个列表视图,其中包含一个没有学生姓名的卷和点击保存按钮时的出勤状态。如何获取列表视图中的数据并将其插入数据库 这是我尝试过的代码,但是数据没有插入数据库 MainActivity.javaAndroid 单击“保存”按钮后,如何获取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
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
}