Android Onitem长单击不适用于listvview
我有一个活动,它将OnItemLongClicllGenerer实现为列表视图。我使用parse.com作为后端,将数据检索到listvview中。一切都正常,但onitemlongclicllstener在列表视图中不起作用。长时间单击列表项时不会发生任何事情 我的主要活动Android Onitem长单击不适用于listvview,android,listview,onitemlongclicklistener,Android,Listview,Onitemlongclicklistener,我有一个活动,它将OnItemLongClicllGenerer实现为列表视图。我使用parse.com作为后端,将数据检索到listvview中。一切都正常,但onitemlongclicllstener在列表视图中不起作用。长时间单击列表项时不会发生任何事情 我的主要活动 public class InterActivity extends Activity implements OnItemLongClickListener { ListView listview; List<P
public class InterActivity extends Activity implements OnItemLongClickListener
{
ListView listview;
List<ParseObject> ob;
ProgressDialog mProgressDialog;
FinalAdapter adapter;
List<CodeList> codelist = null;
SharedPreference shrdPreference;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.inter_layout);
shrdPreference = new SharedPreference();
//Execute RemoteDataTask AsyncTask
new RemoteDataTask().execute();
}
private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Create a progressdialog
mProgressDialog = new ProgressDialog(InterActivity.this);
// Set progressdialog title
mProgressDialog.setTitle("Loading");
// Set progressdialog message
mProgressDialog.setMessage("Please wait loading ...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.setCancelable(false);
// Show progressdialog
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
// Create the array
codelist = new ArrayList<CodeList>();
try {
// Locate the class table named "Country" in Parse.com
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
"InterActivity");
// Locate the column named "ranknum" in Parse.com and order list
// by ascending
query.orderByAscending("_created_at");
ob = query.find();
for (ParseObject inter : ob) {
ParseFile video = (ParseFile) inter.get("demovideo");
// ParseFile downloadfile = (ParseFile) inter.get("download");
CodeList map = new CodeList();
map.setListHeading((String) inter.get("listheading"));
map.setSingleItemHeading((String) inter.get("heading"));
map.setDownloadCode((String) inter.get("download"));
map.setDailogdemovideo(video.getUrl());
// map.setDownloadCode(downloadfile.getUrl());
codelist.add(map);
}
} catch (ParseException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// Locate the listview in listview_main.xml
listview = (ListView) findViewById(R.id.inter_layoutListView);
// Pass the results into ListViewAdapter.java
adapter = new FinalAdapter(InterActivity.this,
codelist);
// Binds the Adapter to the ListView
listview.setAdapter(adapter);
listview.setOnItemLongClickListener(InterActivity.this);
// Close the progressdialog
mProgressDialog.dismiss();
}
}
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View view, int position, long arg3)
{
ImageView fvrtebutton = (ImageView) view.findViewById(R.id.favbtn);
String tag = fvrtebutton.getTag().toString();
if (tag.equalsIgnoreCase("no")) {
shrdPreference.addFavorite(InterActivity.this, codelist.get(position));
Toast.makeText(InterActivity.this, getString(R.string.fav_added),
Toast.LENGTH_SHORT).show();
fvrtebutton.setTag("yes");
fvrtebutton.setImageResource(R.drawable.favorite);
} else {
shrdPreference.removeFavorite(InterActivity.this, codelist.get(position));
fvrtebutton.setTag("no");
fvrtebutton.setImageResource(R.drawable.unfavorite);
Toast.makeText(InterActivity.this,
getString(R.string.fav_removed),
Toast.LENGTH_SHORT).show();
}
return false;
}
@Override
protected void onResume()
{
super.onResume();
}
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.left_to_right, R.anim.right_to_left);
}
公共类交互性扩展活动实现OnItemLongClickListener
{
列表视图列表视图;
列表ob;
进程对话框;
最终适配器;
列表代码列表=空;
SharedReference shrdReference;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.inter_layout);
shrdReference=新的SharedReference();
//执行RemoteDataTaskAsyncTask
新建RemoteDataTask().execute();
}
私有类RemoteDataTask扩展了AsyncTask{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//创建一个progressdialog
mProgressDialog=新建ProgressDialog(InterActivity.this);
//设置进程对话框标题
mProgressDialog.setTitle(“加载”);
//设置进程对话框消息
设置消息(“请等待加载…”);
mProgressDialog.setUndeterminate(false);
mProgressDialog.setCancelable(假);
//显示进度对话框
mProgressDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…参数){
//创建数组
codelist=newarraylist();
试一试{
//在Parse.com中找到名为“Country”的类表
ParseQuery=新的ParseQuery(
“互动性”);
//在Parse.com和订单列表中找到名为“ranknum”的列
//上升
query.orderByAscending(“\u created\u at”);
ob=query.find();
for(ParseObject inter:ob){
ParseFile video=(ParseFile)inter.get(“demovideo”);
//ParseFile downloadfile=(ParseFile)inter.get(“下载”);
代码列表映射=新代码列表();
setListHeading((字符串)inter.get(“listheading”);
map.setSingleItemHeading((字符串)inter.get(“heading”);
setDownloadCode((字符串)inter.get(“下载”);
setDailogdemovideo(video.getUrl());
//setDownloadCode(downloadfile.getUrl());
添加(map);
}
}捕获(解析异常){
Log.e(“Error”,e.getMessage());
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
//在listview_main.xml中找到listview
listview=(listview)findViewById(R.id.inter_layoutListView);
//将结果传递到ListViewAdapter.java中
适配器=新的FinalAdapter(InterActivity.this,
代码表);
//将适配器绑定到ListView
setAdapter(适配器);
setOnItemLongClickListener(InterActivity.this);
//关闭progressdialog
mProgressDialog.disclose();
}
}
@凌驾
公共布尔值长单击(AdapterView arg0、视图视图、整型位置、长arg3)
{
ImageView FvretButton=(ImageView)view.findViewById(R.id.favbtn);
String tag=fvrtebutton.getTag().toString();
if(标记为“否”){
shrdPreference.addFavorite(InterActivity.this,codelist.get(position));
Toast.makeText(InterActivity.this、getString(添加了R.string.fav_),
吐司。长度(短)。show();
设置标签(“是”);
setImageResource(R.drawable.favorite);
}否则{
shrdReference.removeFavorite(InterActivity.this,codelist.get(position));
设置标签(“否”);
fvrtebutton.setImageResource(R.drawable.unfavorite);
Toast.makeText(InterActivity.this,
getString(删除R.string.fav_),
吐司。长度(短)。show();
}
返回false;
}
@凌驾
受保护的void onResume()
{
super.onResume();
}
@凌驾
public void onBackPressed(){
super.onBackPressed();
覆盖转换(R.anim.left\u到右,R.anim.right\u到左);
}
最终适配器.java
public class FinalAdapter extends BaseAdapter
{
Context context;
LayoutInflater inflater;
ImageLoader imgLoader;
private List<CodeList> codeList = null;
private ArrayList<CodeList> arraylist;
SharedPreference shrdprfrnce;
public FinalAdapter(Context context,
List<CodeList> codeList) {
this.context = context;
this.codeList = codeList;
inflater = LayoutInflater.from(context);
this.arraylist = new ArrayList<CodeList>();
this.arraylist.addAll(codeList);
shrdprfrnce = new SharedPreference();
imageLoader = new ImageLoader(context);
}
public class ViewHolder{
TextView listHeading;
TextView listHash;
ImageView alphabetList;
ImageView favariteImage;
}
@Override
public int getCount()
{
return codeList.size();
}
@Override
public Object getItem(int position)
{
return codeList.get(position);
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(final int position, View view, ViewGroup parent)
{
final ViewHolder holder;
if(view == null){
holder = new ViewHolder();
view = inflater.inflate(R.layout.beg_list_item,null);
holder.listHeading = (TextView) view.findViewById(R.id.beg_list_itemTextView);
//holder.listHash = (TextView) view.findViewById(R.id.listview_hashtags);
holder.alphabetList = (ImageView) view.findViewById(R.id.beg_list_itemImageView);
holder.favariteImage = (ImageView) view.findViewById(R.id.favbtn);
view.setTag(holder);
}else{
holder = (ViewHolder) view.getTag();
}
CodeList codes = (CodeList) getItem(position);
holder.listHeading.setText(codeList.get(position).getListHeading());
imageLoader.DisplayImage(codeList.get(position).getAlphabetimg(),
holder.alphabetList);
if (checkFavoriteItem(codes)) {
holder.favariteImage.setImageResource(R.drawable.favorite);
holder.favariteImage.setTag("yes");
} else {
holder.favariteImage.setImageResource(R.drawable.unfavorite);
holder.favariteImage.setTag("no");
}
view.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0){
Intent intent = new Intent(context, SingleItemView.class);
//intent.putExtra("listheading",
// (codeList.get(position).getListHeading()));
//intent.putExtra("alphabetimg",
// (codeList.get(position).getAlphabetimg()));
intent.putExtra("demovideo",
(codeList.get(position).getDailogdemovideo()));
intent.putExtra("download",
(codeList.get(position).getDownloadCode()));
// Start SingleItemView Class
context.startActivity(intent);
}
});
return view;
}
public boolean checkFavoriteItem(CodeList checkCodes) {
boolean check = false;
List<CodeList> favorites = shrdprfrnce.getFavorites(context);
if (favorites != null) {
for (CodeList codes : favorites) {
if (codes.equals(checkCodes)) {
check = true;
break;
}
}
}
return check;
}
public void add(CodeList codes) {
(
codeList.add(codes);
notifyDataSetChanged();
}
public void remove(CodeList codes) {
codeList.remove(codes);
notifyDataSetChanged();
}
公共类FinalAdapter扩展BaseAdapter
{
语境;
充气机;
图像加载器;
私有列表codeList=null;
私有ArrayList ArrayList;
共享参考shrdprfrnce;
公共财务报表(上下文、,
列表(代码列表){
this.context=上下文;
this.codeList=代码列表;
充气器=充气器。从(上下文);
this.arraylist=新的arraylist();
this.arraylist.addAll(代码列表);
SHRDPFRNCE=新的SharedReference();
imageLoader=新的imageLoader(上下文);
}
公共类视图持有者{
文本视图列表标题;
文本视图列表哈希;
图像视图字母列表;
图像视图favariteImage;
}
@凌驾
public int getCount()
{
返回codeList.size();
}
@凌驾
公共对象getItem(int位置)
{
返回代码列表。获取(位置);
}
@凌驾
公共长getItemId(int位置)
{
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图视图、视图组父视图)
{
最终持票人;
如果(视图==null){
holder=新的ViewHolder();
视图=充气机。充气(R.layout.beg\u列表项,空);
holder.listHeading=(TextView)view.findViewById(R.id.beg\u list\u itemTextView);
//holder.listHash=(TextView)view.findViewById(R.id.listview\u hashtags);
holder.alphabetList=(ImageView)view.findViewById(R.id.beg\u list\u itemImageView);
holder.favariteImage=(ImageView)view.findViewById(R.id.favbtn);
视图.设置标签(支架);
}否则{
holder=(ViewHolder)view.getTag();
}
代码列表代码=(代码列表)
@Override
public boolean onItemLongClick(AdapterView < ? > arg0, View arg1,
int pos, long id) {
Log.v("long clicked", "pos: " + pos);
return true;
}
plz remove
view.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0){
Intent intent = new Intent(context, SingleItemView.class);
//intent.putExtra("listheading",
// (codeList.get(position).getListHeading()));
//intent.putExtra("alphabetimg",
// (codeList.get(position).getAlphabetimg()));
intent.putExtra("demovideo",
(codeList.get(position).getDailogdemovideo()));
intent.putExtra("download",
(codeList.get(position).getDownloadCode()));
// Start SingleItemView Class
context.startActivity(intent);
}
});