gpt4 book ai didi

安卓 : Adapter is not working with Arraylist of Hashmap

转载 作者:行者123 更新时间:2023-11-29 01:22:19 26 4
gpt4 key购买 nike

我正在尝试从 SQLite 数据库中离线显示一些数据。数据正常,但我无法在带有适配器的 ListView 上显示。

libraryList.clear();
libraryList = dBhelper.localQuestionBank(student_uuid, questionBankId);
if (libraryList.size() > 0) {
offSetFlag = libraryList.size();
libraryListView.setAdapter(questionBankAdapter);
questionBankAdapter.notifyDataSetChanged();
libraryListView.removeFooterView(loadMoreView);
loadingMore = false;
}

localQuestionBank 方法:

public ArrayList<Map<String, String>> localQuestionBank(String student_uuid, String question_bank_id) {
ArrayList<Map<String, String>> localQuestionBankList = new ArrayList<>();
ArrayList<Map<String, String>> questionBankList = new ArrayList<>();
String[] columns = new String[]{QUESTION_BANK_LABEL, AIP_UUID, QUESTION_SEQUENCE_NAME, QUESTION_MARKS, DESCRIPTION};
SQLiteDatabase db = mDbHelper.getWritableDatabase();
try {
Cursor cursor = db.query(LOCAL_QUESTION_BANK, columns, STUDENT_UUID+"=?" +" and "+ QUESTION_BANK_ID+"=?", new String[] { student_uuid, question_bank_id }, null, null, null);
if (cursor.moveToFirst()) {
do {
Map<String, String> subMap = new HashMap<String, String>();
subMap.put("aep_uuid", cursor.getString(cursor.getColumnIndex(AIP_UUID)));
subMap.put("question_marks", cursor.getString(cursor.getColumnIndex(QUESTION_MARKS)));
subMap.put("question_sequence_name", cursor.getString(cursor.getColumnIndex(QUESTION_SEQUENCE_NAME)));
subMap.put("description", cursor.getString(cursor.getColumnIndex(DESCRIPTION)));
subMap.put("question_bank_label", cursor.getString(cursor.getColumnIndex(QUESTION_BANK_LABEL)));
questionBankList.add(subMap);
} while (cursor.moveToNext());
localQuestionBankList.addAll(questionBankList);
questionBankList.clear();
}
cursor.close();
db.close();
} catch (SQLException sqlEx) {
sqlEx.printStackTrace();
}
return localQuestionBankList;
}

ListView 和适配器:

questionBankAdapter = new QuestionBankAdapter(getActivity(),libraryList);
libraryListView.setAdapter(questionBankAdapter);

问题库适配器:

package eukti.myafterclass.adapter;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.text.Html;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.Map;

import eukti.myafterclass.R;
import eukti.myafterclass.ui.QuestionBankDetailsView;
import eukti.myafterclass.utils.InternetConnectionDetector;

public class QuestionBankAdapter extends BaseAdapter {

private final Activity context;
private ArrayList<Map<String, String>> dashboardList;
private static LayoutInflater inflater=null;


public QuestionBankAdapter(Activity context,
ArrayList<Map<String, String>> dashList) {
this.context = context;
this.dashboardList = dashList;
if (context!=null) {
inflater = (LayoutInflater) context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
}

@Override
public int getCount() {
return dashboardList.size();
}

@Override
public Object getItem(int position) {
return dashboardList.size();
}

@Override
public long getItemId(int position) {
return position;
}

public class Holder
{
TextView sequence;
TextView marks;
WebView description;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder=new Holder();
View rowView;
Log.d("LocalQBadapter:", dashboardList.get(position).get("question_sequence_name"));
rowView = inflater.inflate(R.layout.questionbank_items, null);
holder.sequence=(TextView) rowView.findViewById(R.id.questionSequenceName);
holder.marks=(TextView) rowView.findViewById(R.id.marks);
holder.description=(WebView) rowView.findViewById(R.id.description);
holder.description.getSettings().setJavaScriptEnabled(true);

String heading = dashboardList.get(position).get("question_sequence_name");
holder.sequence.setText(Html.fromHtml(heading));
holder.marks.setText("Marks : "+dashboardList.get(position).get("question_marks"));

String description = dashboardList.get(position).get("description");

String allAns = "<html><body>"+description.replace("\r\n", "<br/>")+"</body></html>";
holder.description.loadDataWithBaseURL(null, allAns, "text/html", "utf-8", null);

holder.description.setOnLongClickListener(new View.OnLongClickListener() {

@Override
public boolean onLongClick(View v) {
return true;
}
});
holder.description.setLongClickable(false);

rowView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!InternetConnectionDetector.isNetworkAvailable(context)) {
Toast.makeText(context, "Check your connection and try again.", Toast.LENGTH_LONG).show();
} else {
Intent redirect = new Intent(context, QuestionBankDetailsView.class);
redirect.putExtra("aep_uuid", dashboardList.get(position).get("aep_uuid"));
redirect.putExtra("question_sequence_name", dashboardList.get(position).get("question_sequence_name"));
redirect.putExtra("question_marks", dashboardList.get(position).get("question_marks"));
redirect.putExtra("description", dashboardList.get(position).get("description"));
context.startActivity(redirect);
}
}
});

return rowView;
}
}

对我来说似乎没问题,但数据没有显示在 Listview 中。

最佳答案

你输入的内容

@Override
public Object getItem(int position) {
return dashboardList.size();
}

我认为应该是这样

@Override
public Object getItem(int position) {
return dashboardList.get(position);
}

试试看,让我知道

关于安卓 : Adapter is not working with Arraylist of Hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36077850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com