Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Linkify&x27;s可单击方法块列表视图单击方法_Java_Android_Listview_Onclick - Fatal编程技术网

Java Linkify&x27;s可单击方法块列表视图单击方法

Java Linkify&x27;s可单击方法块列表视图单击方法,java,android,listview,onclick,Java,Android,Listview,Onclick,您好,我有一个列表视图,每行有一个文本视图,其中有一个文本链接和定义的模式,我使用这个小代码使链接项目可以点击,并调用我的应用程序中的另一个活动。但在此之前,我使用列表上方的imaview使导航显示在列表视图上,当我添加 textView.setMovementMethod(LinkMovementMethod.getInstance()); Pattern Matcher = Pattern.compile("pattern here"); String Url = "

您好,我有一个列表视图,每行有一个文本视图,其中有一个文本链接和定义的模式,我使用这个小代码使链接项目可以点击,并调用我的应用程序中的另一个活动。但在此之前,我使用列表上方的imaview使导航显示在列表视图上,当我添加

    textView.setMovementMethod(LinkMovementMethod.getInstance());
    Pattern Matcher = Pattern.compile("pattern here");
    String Url = "sth://";
    Linkify.addLinks(entrySpan, Matcher, Url);
代替了listview的onClick方法,只需点击链接就可以了,但我必须让它们在机器人上工作

这是我用于listview单击方法的代码,但在设置linkify set movement后似乎从未触发,我在Vısıble和Goe之间来回切换,每次单击后都会消失

getListView().setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                if(Entry.totalPageNumber>1){
                    //if no more than one page exist no need to navigate

                    if(show == false){
                        findViewById(R.id.back).setVisibility(View.VISIBLE);
                        findViewById(R.id.forward).setVisibility(View.VISIBLE);
                        findViewById(R.id.start).setVisibility(View.VISIBLE);
                        findViewById(R.id.last).setVisibility(View.VISIBLE);
                        show=true;
                    }else if(show==true){
                        findViewById(R.id.back).setVisibility(View.GONE);
                        findViewById(R.id.forward).setVisibility(View.GONE);
                        findViewById(R.id.start).setVisibility(View.GONE);
                        findViewById(R.id.last).setVisibility(View.GONE);
                        show=false;
                    }
                }
            }
        });
getListView().setOnItemClickListener(新的OnItemClickListener()){
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
如果(条目.总页码>1){
//如果不存在多个页面,则无需导航
if(show==false){
findViewById(R.id.back).setVisibility(View.VISIBLE);
findViewById(R.id.forward).setVisibility(View.VISIBLE);
findViewById(R.id.start).setVisibility(View.VISIBLE);
findViewById(R.id.last).setVisibility(View.VISIBLE);
show=true;
}else if(show==true){
findViewById(R.id.back).setVisibility(View.GONE);
findviewbyd(R.id.forward).setVisibility(View.GONE);
findViewById(R.id.start).setVisibility(View.go);
findViewById(R.id.last).setVisibility(View.GONE);
show=false;
}
}
}
});

如何解决这个问题?

我解决了它,只是将onClickListener实现移动到我的getView方法中,该方法绘制textview并直接将onClickListener应用到textview,最后两者都工作得很愉快

TextView textView = (TextView) mView.findViewById(R.id.entryRowTextView);


textView.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            // TODO Auto-generated method stub
                            if(Entry.totalPageNumber>1){
                                //if no more than one page exist no need to navigate
                                Log.d(EKSI, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                if(show == false){
                                    findViewById(R.id.back).setVisibility(View.VISIBLE);
                                    findViewById(R.id.forward).setVisibility(View.VISIBLE);
                                    findViewById(R.id.start).setVisibility(View.VISIBLE);
                                    findViewById(R.id.last).setVisibility(View.VISIBLE);
                                    show=true;
                                }else if(show==true){
                                    findViewById(R.id.back).setVisibility(View.GONE);
                                    findViewById(R.id.forward).setVisibility(View.GONE);
                                    findViewById(R.id.start).setVisibility(View.GONE);
                                    findViewById(R.id.last).setVisibility(View.GONE);
                                    show=false;
                                }
                            }
                        }
                    });

据我所知,如果在listview项目中添加按钮,则无法再选择该列表项目。然后,您必须使用更复杂的技术来创建自定义适配器,并使用getView方法控制每个按钮的setTag和getTag选择。这对初学者来说可能不容易,但学习是必要的

下面是一个简单的例子:

列表回收也有一个问题。这意味着,如果屏幕上有10行,当你滚动到第11行和第21行时,第11行也将显示为选中或更改,以此类推。。。在这里,getView必须使用 if(决定布局的条件){…code…}else{…code…}