点击相关关键字,例如搜索输入

时间:2018-11-08 06:46:31

标签: android sqlite db-browser-sqlite

对不起,我的标题不好(我真的不知道该怎么说),但我有一个cardview的卡片视图,其中返回的结果基于用户,已在搜索栏中输入。

返回的所有信息均基于我的数据库(SQLite的数据库浏览器)。 cardview本身不可点击,但现在我希望相关关键字部分可以按某种方式单击,如果用户单击其中一个相关关键字,它将打开该关键字的cardview,就像用户搜索以下内容时一样它。 (请原谅我的英语不好!)到目前为止,我只知道我必须在UI上添加clickable = true。但是,从逻辑上讲,我不确定。

下面是我的代码:

Cardview用户界面

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardElevation="5dp"
android:layout_margin="5dp">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_margin="8dp">


<LinearLayout
    android:orientation="vertical"
    android:layout_weight="9"
    android:layout_width="0dp"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/keyword"
        android:layout_marginLeft="10dp"
        android:gravity="center_vertical|start"
        android:textAllCaps="true"
        android:textStyle="bold"
        android:textColor="#000000"
        android:textSize="15dp"
        android:text="Baggage Management Interface Device (BMID) Testing 
        123"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/acronym"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:gravity="center_vertical|start"
        android:textStyle="italic"
        android:textColor="#a8000000"
        android:text="GST"
        android:textSize="13dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/description"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:gravity="center_vertical|start"
        android:textColor="#a8000000"
        android:text="If none are set then 'GST' is set to NULL"
        android:textSize="13dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

    <TextView
        android:id="@+id/relatedKeyword"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:gravity="center_vertical|start"
        android:textColor="#a8000000"
        android:text="Related Keyword:"
        android:textSize="12sp"
        android:textStyle="bold|italic"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/relatedKeyword1"
            android:clickable="true"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:textColor="#a8000000"
            android:text="Keyword 1"
            android:textSize="12sp"
            android:textStyle="italic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/relatedKeyword2"
            android:clickable="true"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:textColor="#a8000000"
            android:text="Keyword 2"
            android:textSize="12sp"
            android:textStyle="italic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/relatedKeyword3"
            android:clickable="true"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:textColor="#a8000000"
            android:text="Keyword 3"
            android:textSize="12sp"
            android:textStyle="italic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

    </LinearLayout>
</LinearLayout>
</LinearLayout>

搜索适配器+ SearchView固定器

package com.example.run_h.boav2.Adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.run_h.boav2.Model.Knowledge;
import com.example.run_h.boav2.R;

import java.util.List;

class SearchViewHolder extends RecyclerView.ViewHolder{

public TextView keyword, description, acronym, relatedkeyword1, 
relatedkeyword2, relatedkeyword3;

public SearchViewHolder(@NonNull View itemView) {
    super(itemView);

    keyword = itemView.findViewById(R.id.keyword);
    acronym = itemView.findViewById(R.id.acronym);
    description = itemView.findViewById(R.id.description);
    relatedkeyword1= itemView.findViewById(R.id.relatedKeyword1);
    relatedkeyword2= itemView.findViewById(R.id.relatedKeyword2);
    relatedkeyword3= itemView.findViewById(R.id.relatedKeyword3);

}

}

public class SearchAdapter extends RecyclerView.Adapter<SearchViewHolder> 
{

private Context context;
private List<Knowledge> knowledge;

public SearchAdapter(Context context, List<Knowledge> knowledge) {
    this.context = context;
    this.knowledge = knowledge;
}

@NonNull
@Override
public SearchViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int 
viewType) {

    LayoutInflater inflater = LayoutInflater.from(parent.getContext());
    View itemView = inflater.inflate(R.layout.layout_item, parent,     
false);
    return new SearchViewHolder(itemView);
}

@Override
public void onBindViewHolder(@NonNull SearchViewHolder holder, int position)     
{

    holder.keyword.setText(knowledge.get(position).getKeyword());
    holder.description.setText(knowledge.get(position).getDescription());
    holder.acronym.setText(knowledge.get(position).getAcronym());
    holder.relatedkeyword1.setText(knowledge.get(position).getRelatedkeyword1());
    holder.relatedkeyword2.setText(knowledge.get(position).getRelatedkeyword2());
    holder.relatedkeyword3.setText(knowledge.get(position).getRelatedkeyword3());


}

@Override
public int getItemCount() {
    return knowledge.size();
}

}

任何人都知道我该如何实现?非常感激。谢谢!

0 个答案:

没有答案