Android 单击上一个活动的项目(Listview)后,如何突出显示下一个活动的项目(Listview)?

Android 单击上一个活动的项目(Listview)后,如何突出显示下一个活动的项目(Listview)?,android,listview,android-activity,listviewitem,Android,Listview,Android Activity,Listviewitem,我有两个片段。一个片段由问题组成,另一个片段由答案组成。例如,如果一个人点击问题(8),这意味着你可以说项第8项,那么它应该转到下一个活动并突出显示该问题的答案(8)。我被卡住了。我将十分感谢你。 下面是一些代码,它们将问题编号或列表项编号发送到下一个活动,下一个活动代码接收到这个问题编号,我将其保存到integer“a”中。现在,什么类型的IF条件可以在下一个活动中工作 第一项活动 第一个活动的ListView适配器代码(使用SQlite) DatabaseAccess db=Database

我有两个
片段
。一个
片段
由问题组成,另一个
片段
由答案组成。例如,如果一个人点击问题(8),这意味着你可以说
第8项,那么它应该转到下一个活动并突出显示该问题的答案(8)。我被卡住了。我将十分感谢你。 下面是一些代码,它们将问题编号或列表项编号发送到下一个活动,下一个活动代码接收到这个问题编号,我将其保存到integer“a”中。现在,什么类型的IF条件可以在下一个活动中工作

第一项活动

第一个活动的ListView适配器代码(使用SQlite)

DatabaseAccess db=DatabaseAccess.getInstance(getActivity().getApplicationContext());
列表lst;
db.open();
lst=db.getexamq();
db.close();
ArrayAdapter=新的ArrayAdapter(ExamQ.this.getActivity(),android.R.layout.simple_list_item_1,lst);
低压设置适配器(适配器);
下一个活动的ListView适配器代码(使用SQlite)

DatabaseAccess db=DatabaseAccess.getInstance(getActivity().getApplicationContext());
列表lst;
db.open();
lst=db.getexamq();
db.close();
ArrayAdapter=newArrayAdapter(ExamA.this.getActivity(),android.R.layout.simple_list_item_1,lst);
低压设置适配器(适配器);
  • 使用意图束将问题ID或问题No移动到下一个活动
  • 在问题列表视图的适配器中,为具有类似问题ID的问题设置不同的背景色。您甚至可以将背景设置为具有淡入淡出动画或在特定毫秒数或秒数后更改为正常
  • 所需的所有代码都是大量的编写一些东西(一些代码),如果ListViewAdapter不起作用,我们可以提供帮助

    编辑:快速自定义适配器代码示例

        lv.setAdapter(new ArrayAdapter(ExamQ.this.getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, lst){
            @Override
            public View getView(final int position, View convertView, ViewGroup parent) {
                View v = convertView;
                final String examQ = lst[position];
    
                if (v == null) {
                    LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    v = vi.inflate(android.R.layout.simple_list_item_1, null);
                }
    
                TextView tv = (TextView) v.findViewById(android.R.id.text1);
                tv.setText(examQ);
    
    
                if( examQ.equals(result)) { // Unique identifier here
                    v.setBackground(Color.RED); //Some other fancy color here
                }
                return v;
            }
        });
    

    然而,我刚刚发现您没有为每个问题指定唯一的标识符。因此,目前只需使用问题字符串并将其传递给下一个活动

    假设您在第二个片段的列表视图中为每个答案提供了一个文本视图。然后,您可以比较第二个片段中listview适配器的
    getView()
    中的问题id。现在,当您找到答案时,只需调用
    textview.setBackgroundColor()

    编辑: 在
    lv.setAdapter(适配器)之后添加

    View v = lv.getViewAt(a);
    if(v!=null)
        v.setBackgroundColor (Color.RED);
    

    你能发布一些代码吗?你已经得到了什么?我很乐意帮忙,但我很感激你方的一点工作。我正在努力,但问题是我真的想知道从哪里开始。。但让我想想……我可以将问题“否”转移到下一个活动。但是你能告诉我,如果我们使用If条件将问题编号与下一个活动的项目编号匹配,并且如果它们匹配,则突出显示它。这是否可行?是的,提供适配器代码、xml和活动代码&我可以帮你看一下。我用我的代码更新了我的问题。请提供ListView适配器代码再看一看。你能用一些代码解释我吗??我的意思是,你有任何代码可以告诉我,如何检查这个问题没有与下一个活动??
    DatabaseAccess db=DatabaseAccess.getInstance(getActivity().getApplicationContext());
    
    
    
        List<String> lst;
        db.open();
        lst=db.getexamq();
        db.close();
    
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(ExamQ.this.getActivity(), android.R.layout.simple_list_item_1, lst);
        lv.setAdapter(adapter);
    
    DatabaseAccess db=DatabaseAccess.getInstance(getActivity().getApplicationContext());
    
    
    
        List<String> lst;
        db.open();
        lst=db.getexamq();
        db.close();
    
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(ExamA.this.getActivity(), android.R.layout.simple_list_item_1, lst);
        lv.setAdapter(adapter);
    
        lv.setAdapter(new ArrayAdapter(ExamQ.this.getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, lst){
            @Override
            public View getView(final int position, View convertView, ViewGroup parent) {
                View v = convertView;
                final String examQ = lst[position];
    
                if (v == null) {
                    LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    v = vi.inflate(android.R.layout.simple_list_item_1, null);
                }
    
                TextView tv = (TextView) v.findViewById(android.R.id.text1);
                tv.setText(examQ);
    
    
                if( examQ.equals(result)) { // Unique identifier here
                    v.setBackground(Color.RED); //Some other fancy color here
                }
                return v;
            }
        });
    
    View v = lv.getViewAt(a);
    if(v!=null)
        v.setBackgroundColor (Color.RED);