相关疑难解决方法(0)

为什么ViewHolder上的OnClickListener不起作用?

我正在尝试实现一种处理项目选择的方法RecyclerView.我个人不喜欢在通过手势的一些答案中建议的方式,我认为实施一个OnClickListener,如这里这里所建议的那样,更清洁.

事实是......这种模式实际上并不起作用!我真的无法理解,为什么我OnClickListener.onClick永远不会被调用.它有点像另一种方法拦截点击之前onClick可以处理它.

这是我的代码:

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        TextView tvName;
        ImageView star;

        public ViewHolder(View itemView) {
            super(itemView);

            tvName = (TextView) itemView.findViewById(R.id.CHAT_ITEM_name);
            star = (ImageView) itemView.findViewById(R.id.CHAT_ITEM_star);

            Fonts.setTypeface(tvName, regular);
        }

        @Override
        public void onClick(View view) {
            int position = getLayoutPosition();
            select(position);
        }
    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,能够访问整个数据集中被点击项目的位置非常重要,以便将其删除,所以做一些类似的事情indexOfChild也是不可接受的:我试过了,但是这个方法可以为你提供项目的位置在列表的可见部分中,因此变得list.remove(position)不可能.

android onclick onclicklistener android-recyclerview

21
推荐指数
1
解决办法
2万
查看次数

将单击侦听器设置为RecyclerView

我使用RecyclerView适配器来显示活动内部的数据,我想onClickListener在活动内部实现,目前,我onClickListener正常设置内部适配器,工作正常.

public void onBindViewHolder(MyHolder holder, final int position) {
    final Listdata data = listdata.get(position);
    holder.vname.setText(data.getName());

    holder.vname.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(activity, "clicked on " +position, Toast.LENGTH_SHORT).show();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

但是我想在活动中实现它,所以我有更大的控制权.这不符合我的目的.我认为这对我们很多人都有用.

java android gridview recycler-adapter android-recyclerview

11
推荐指数
5
解决办法
1万
查看次数

如何在回收站视图中使用OnClickListener?

我基本上要做的是让回收器视图中显示的对象可以点击某个TextView id,因为我正在制作一个程序,在列表中显示一个专辑封面及其旁边的标题.我需要能够点击回收者视图所做的每一个方框,并在点击时弹出带有其他信息(作者,发布日期,热门歌曲等)的TextView,然后再按一个后退按钮(如果可以)回到专辑列表.我已经看了好几个小时,无法弄清楚如何让OnclickListener为它工作.如果您知道如何或有任何建议,我很高兴听到他们.谢谢!

package com.albumlist.albumlist;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private AlbumData[] itemsData;

    public MyAdapter(AlbumData[] itemsData){
        this.itemsData = itemsData;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        private TextView txtViewTitle;
        private ImageView imgViewIcon;

        public ViewHolder(View itemLayoutView) {
            super(itemLayoutView);
            itemLayoutView.setOnClickListener(this);
            txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.album_title);
            imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.album_icon);
        }

        @Override
        public void onClick(View v) {

        }
    }

    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup …
Run Code Online (Sandbox Code Playgroud)

java android onclicklistener android-studio android-recyclerview

10
推荐指数
1
解决办法
1万
查看次数

RecyclerView OnClick无法正常工作

我在片段中制作了一个水平回收视图.现在,当我点击任何项目时,我没有看到点击监听器工作.这是我的Adapter类的代码:

public class FeaturedProductsAdapter  extends RecyclerView.Adapter<FeaturedProductsAdapter.CustomViewHolder> {
private List<FeaturedProductInfo> feedItemList;
private Context mContext;

public FeaturedProductsAdapter(Context context, List<FeaturedProductInfo> feedItemList) {
    this.feedItemList = feedItemList;
    this.mContext = context;
}
public class CustomViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    protected ImageView imageView;
    protected TextView textView,priceView;
    private Context context;


    public CustomViewHolder(View view,Context context) {

        super(view);
        this.context=context;
        this.imageView = (ImageView) view.findViewById(R.id.thumbnail);
        this.textView = (TextView) view.findViewById(R.id.prodTitle);
        this.priceView = (TextView) view.findViewById(R.id.prodPrice);
        view.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {

        int position = getLayoutPosition(); // gets item position
        Log.e("Check", position …
Run Code Online (Sandbox Code Playgroud)

android android-adapter android-recyclerview

7
推荐指数
1
解决办法
2万
查看次数

如何将Onclick侦听器添加到回收器视图

我正在开发一个简单的记事本应用程序,我首先使用listView来显示所有注释.但现在我使用的是RecyclerView.当我使用listview时,我使用OnItemClickListener将数据传递给另一个活动来编辑注释现在我很困惑在Recylerview中做什么

对于listView我正在使用它

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            name = filenames.get(position).getName();
            note = filenames.get(position).getShorttext();
            Alert(); // this method is in main activity 

        }
    });*/  


  public void Alert()
   {
    final AlertDialog dialog;
    View mview = getLayoutInflater().inflate(R.layout.dialog_pass,null);
    final EditText mEdittext = (EditText) mview.findViewById(R.id.Epass);
    AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
    mBuilder.setView(mview);
    mBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            String col = mEdittext.getText().toString();
            String password = dBhelper.searchpass(col);
            if (col.equals(password)) {
                Intent …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

7
推荐指数
2
解决办法
2万
查看次数

RecyclerView onClickListener

因此,经过5个月的web开发,我需要回到android,但我注意到我的一些旧代码不再工作了.我有一个带有数据适配器的RecyclerView,但项目的onClickListener没有响应任何内容.这就是我的代码:

public class ProjectAdapter extends RecyclerView.Adapter<ProjectAdapter.ViewHolder> {
    private List<Project> itemsData;

    OnItemClickListener mItemClickListener;

    public ProjectAdapter(List<Project> itemsData) {
        this.itemsData = itemsData;
    }

    // Create new views (invoked by the layout manager)
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent,
                                                   int viewType) {
        // create a new views
        View itemLayoutView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_layout, parent, false);

        // create ViewHolder
        ViewHolder vh = new ViewHolder(itemLayoutView);
        return vh;
    }

    // Replace the contents of a view (invoked by the layout manager)
    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position) { …
Run Code Online (Sandbox Code Playgroud)

android onclicklistener android-recyclerview

6
推荐指数
1
解决办法
3万
查看次数

无法解析方法setOnChildClickListener

这是我的整个活动代码,如果nessery我也可以发布我的xml.

public class Main_Activityextends AppCompatActivity {
private RecyclerView recyclerview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    recyclerview = (RecyclerView) findViewById(R.id.recyclerview);
    recyclerview.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
    List<ExpandableListViewAdapter.Item> data = new ArrayList<>();

    data.add(new ExpandableListViewAdapter.Item(ExpandableListViewAdapter.HEADER, "Terms of usage"));
    data.add(new ExpandableListViewAdapter.Item(ExpandableListViewAdapter.CHILD, "never eat"));
    data.add(new ExpandableListViewAdapter.Item(ExpandableListViewAdapter.CHILD, "bluhhhhh"));

    recyclerview.setAdapter(new ExpandableListViewAdapter(data));

     recyclerview.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
            return true;
        }

    });
Run Code Online (Sandbox Code Playgroud)

代码在没有的情况下完美运行clickListener,但我希望在点击某个阵列的某个孩子时发生一个动作,但是现在它说Cannot resolve method setOnChildClickListener(anonymous android.widget.ExpendableListView.OnChildClickListener)虽然这recycleView是我的Adapter,但任何帮助都将受到赞赏

java android arraylist expandablelistview

5
推荐指数
1
解决办法
330
查看次数

ListView,AbsListView和RecyclerView有什么区别

我是android开发的新手,我遇到了这3个不同的选项ListView,AbsListView和RecyclerView来在android中创建一个List.这3个有什么区别.

java android listview android-recyclerview

4
推荐指数
1
解决办法
4229
查看次数

从扩展RecyclerView.ViewHolder的类启动DialogFragment

我在recyelerview.viewholder类的onClick()方法中尝试了如下.

示例中使用的SampleDialogFragment扩展了DialogFragment.

@Override
public void onClick(View v)
{
SampleDialogFragment df= new SampleDialogFragment();
df.show(v.getContext().getSupportFragmentManager(), "Dialog");
}
Run Code Online (Sandbox Code Playgroud)

我正面临着问题v.getContext().getSupportFragmentManager().我无法调用getSupportFragmentManager().

我也试过如下.

@Override
public void onClick(View v)
{
SampleDialogFragment df= new SampleDialogFragment();
SampleActivity activity = new SampleActivity();
df.show(activity.getSupportFragmentManager(), "Dialog");
}
Run Code Online (Sandbox Code Playgroud)

SampleActivity是回收器视图附加的活动.它没有显示错误.当我运行应用程序并崩溃.

日志显示活动已经破坏.

有解决方案吗

android android-dialogfragment dialogfragment android-recyclerview

4
推荐指数
1
解决办法
1823
查看次数

从DialogFragment返回值

我正在做的任务,我需要在点击后显示一个对话框EditText.在该对话框中,我使用RadioButtons 显示内容RecyclerView.

现在,我想要做的是,在从对话框中选择RadioButton(在RecyclerView中的内容)之后,它应该返回该内容的值,然后应该关闭对话框.

为了生成一个对话框我用了一个DialogFragment.

由于我是android开发的新手,我完全感到困惑,无法找到解决方案.

android android-dialogfragment android-recyclerview

3
推荐指数
1
解决办法
5902
查看次数