Java android中的SimpleCrsorAdapter
这是我第一次创建android应用程序。我现在要创建的是一个列表,当用户单击列表中的某个名称时,将显示单击名称的详细信息。我正在尝试创建简单的游标适配器。但是发生了一个错误Java android中的SimpleCrsorAdapter,java,android,simplecursoradapter,Java,Android,Simplecursoradapter,这是我第一次创建android应用程序。我现在要创建的是一个列表,当用户单击列表中的某个名称时,将显示单击名称的详细信息。我正在尝试创建简单的游标适配器。但是发生了一个错误 The constructor SimpleCursorAdapter(QuestionsNew, int, Cursor, String[], int[]) is undefined. 你认为可能的原因是什么。下面是我代码的一部分 package tk.wew.wew; import info.androidhive.
The constructor SimpleCursorAdapter(QuestionsNew, int, Cursor, String[], int[]) is undefined.
你认为可能的原因是什么。下面是我代码的一部分
package tk.wew.wew;
import info.androidhive.sqlite.model.LocalStorage;
import info.androidhive.sqlite.model.Message;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import static tk.askd.askd.CommonUtilities.*;
public class QuestionsNew extends Fragment {
Cursor cursor;
ListView nameList;
protected ListAdapter adapter;
// TextView tvCompany = (TextView)
// findViewById(R.id.tvContactListCompany);
private static final String TAG = "Question";
private ListView list;
private static List questions;
ArrayList<String> senders = new ArrayList<String>();
ArrayList<String> shortMsg = new ArrayList<String>();
ArrayList<Integer> imageId = new ArrayList<Integer>();
SimpleCursorAdapter myCursorAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view;
//CommonUtilities.sendAQuestion(getActivity(), "msg123Kjjj11", "richmund_10023", "lofrancs1231", "Apil ka?");
questions = CommonUtilities.getAllQuestions(getActivity(), "N", null);
if(questions.size() > 0){
view = inflater.inflate(R.layout.questions_main_layout, container, false);
AskdDatabaseHelper msg_db = new AskdDatabaseHelper(getActivity());
List<Message> messages = msg_db.getAllQuestions("N", "lofrancs1231");
Cursor cursor = msg_db.getAllQuestions3();
// Setup mapping from cursor to view fields:
String[] fromFieldNames = new String[] { "KEY_MSG_MESSAGE_ID","KEY_MSG_MESSAGE" };
int[] toViewIDs = new int[] { R.id.KEY_MSG_MESSAGE_ID, R.id.KEY_MSG_MESSAGE_ID };
/* SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter(this, // Context
R.layout.message_list_item, // Row layout template
cursor, // cursor (set of DB records to map)
fromFieldNames, // DB Column names
toViewIDs // View IDs to put information in
);*/
myCursorAdapter = new SimpleCursorAdapter(QuestionsNew.this,
R.layout.message_list_item,
cursor,
fromFieldNames,
toViewIDs);
ListView contactList = (ListView) getView().findViewById(R.id.lvContacts);
contactList.setAdapter(myCursorAdapter);
for(int m=0; m<questions.size(); m++){
senders.add(messages.get(m).getFromUser());
shortMsg.add(messages.get(m).getMessage());
imageId.add(R.drawable.ic_launcher);
}
} else {
view = inflater.inflate(R.layout.fragments_question_new, container, false);
((TextView)view.findViewById(R.id.textView)).setText("No New Questions");
}
return view;
}
@Override
public void onStart(){
super.onStart();
Log.v(TAG, ": New onStart");
if(questions.size() > 0){
list = (ListView) getView().findViewById(R.id.list);
CustomLst adapter = new CustomLst(getActivity(), senders, imageId, shortMsg);
list.setAdapter(adapter);
list.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
// Cursor listCursor = (Cursor) parent.getItemAtPosition(position);
// Cursor listCursor = (Cursor) parent.getAdapter().getItem(position);
// Log.d("TAG", (String) parent.getItemAtPosition(id));
Toast.makeText(getActivity(),
"Position:"+ parent.getItemIdAtPosition((int) id), Toast.LENGTH_LONG)
.show();
// int message = listCursor.getInt(listCursor.getColumnIndex(AskdDatabaseHelper.KEY_MSG_MESSAGE_ID));
/*
Intent intent = new Intent(getActivity(), QuestionDetail.class);
intent.putExtra("Message_ID", listCursor.getString(listCursor.getColumnIndex(AskdDatabaseHelper.KEY_MSG_MESSAGE_ID)));
startActivity(intent);
// ListView clicked item index
int Position = position;
// ListView clicked item value
String itemValue = (String) list.getItemAtPosition(Position);
// show alert
// Toast.makeText(getActivity(),
// "Position:" + Position + " Listitem:" + itemValue, Toast.LENGTH_LONG)
// .show();
*/
}
});
} else {
Log.e(TAG, "No new question");
}
}
}
包tk.wew.wew;
导入info.androidhive.sqlite.model.LocalStorage;
导入info.androidhive.sqlite.model.Message;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.Map;
导入android.content.Intent;
导入android.database.Cursor;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.SimpleCursorAdapter;
导入android.widget.TextView;
导入android.widget.Toast;
导入android.widget.AdapterView.OnItemClickListener;
导入静态tk.askd.askd.CommonUtilities.*;
公共类问题新扩展片段{
光标;
列表视图名称列表;
受保护的ListAdapter适配器;
//TextView电视公司=(TextView)
//findViewById(R.id.tvContactListCompany);
私有静态最终字符串TAG=“Question”;
私有列表视图列表;
私有静态列表问题;
ArrayList senders=新的ArrayList();
ArrayList shortMsg=新的ArrayList();
ArrayList imageId=新的ArrayList();
SimpleCursorAdapter myCursorAdapter;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图;
//sendAQuestion(getActivity(),“msg123Kjjj11”,“richmund_10023”,“lofrancs1231”,“Apil ka?”);
questions=CommonUtilities.getAllQuestions(getActivity(),“N”,null);
如果(questions.size()>0){
视图=充气机。充气(右布局。主布局,容器,假);
AskdDatabaseHelper msg_db=新的AskdDatabaseHelper(getActivity());
列表消息=msg_db.getAllQuestions(“N”,“lofrancs1231”);
Cursor Cursor=msg_db.getAllQuestions3();
//设置从光标到视图字段的映射:
String[]fromFieldNames=新字符串[]{“KEY\u MSG\u MESSAGE\u ID”,“KEY\u MSG\u MESSAGE”};
int[]toViewIDs=newint[]{R.id.KEY\u MSG\u MESSAGE\u id,R.id.KEY\u MSG\u MESSAGE\u id};
/*SimpleCursorAdapter myCursorAdapter=新SimpleCursorAdapter(此,//上下文
R.layout.message\u列表\u项,//行布局模板
游标,//游标(要映射的数据库记录集)
fromFieldNames,//DB列名
toViewIDs//查看要放入信息的ID
);*/
myCursorAdapter=新的SimpleCursorAdapter(问题新建,
R.layout.message\u list\u项,
光标,
从字段名,
toViewIDs);
ListView联系人列表=(ListView)getView().findViewById(R.id.lvContacts);
contactList.setAdapter(myCursorAdapter);
对于(int m=0;m 0){
list=(ListView)getView().findViewById(R.id.list);
CustomLst adapter=new CustomLst(getActivity(),senders,imageId,shortMsg);
list.setAdapter(适配器);
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//游标listCursor=(游标)parent.getItemAtPosition(位置);
//游标listCursor=(游标)parent.getAdapter().getItem(位置);
//Log.d(“TAG”,(String)parent.getItemAtPosition(id));
Toast.makeText(getActivity(),
位置:“+parent.getItemIDataPosition((int)id),Toast.LENGTH\u LONG)
.show();
//int message=listCursor.getInt(listCursor.getColumnIndex(AskdDatabaseHelper.KEY_MSG_message_ID));
/*
Intent Intent=新意图(getActivity(),QuestionDetail.class);
intent.putExtra(“Message_ID”,listCursor.getString(listCursor.getColumnIndex(AskdDatabaseHelper.KEY_MSG_Message_ID));
星触觉(意向);
//ListView单击的项目索引
int位置=位置;
//ListView单击的项目值
String itemValue=(String)list.getItemAtPosition(Position);
//显示警惕
//Toast.makeText(getActivity(),
//位置:“+Position+”列表项:“+itemValue,Toast.LENGTH\u LONG)
//.show();
*/
}
});
}否则{
Log.e(标签“无新问题”);
}
}
}
如下更改构造函数
myCursorAdapter = new SimpleCursorAdapter(getActivity(),
R.layout.message_list_item,
cursor,
fromFieldNames,
toViewIDs);
第一个参数是上下文
。此问题是新的。此
不是有效的上下文。片段不扩展上下文
活动
java.lang.Object
↳ android.content.Context // check this
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity // check this
碎片
java.lang.Object
↳ android.app.Fragment // check this
因此,使用getActivity()
公共最终活动getActivity()
在API级别11中添加,返回此片段当前所在的活动
与…有关
也
SimpleCursorAdapter(上下文上下文、int布局、光标c、字符串[])
from,int[]to)此构造函数在API级别11中被弃用。此
不鼓励使用该选项,因为它会导致执行游标查询
在应用程序的UI线程上,因此可能会导致响应性差
甚至应用程序没有响应错误。作为替代,使用
带有游标装入器的装入器管理器
使用ArrayAdapter时也是如此