нажмите на связанное ключевое слово, например, на поисковый запрос - PullRequest
0 голосов
/ 08 ноября 2018

Привет, извините за мой плохой заголовок (я действительно не знаю, как его лучше сформулировать), но у меня есть вид карты точно так же, как этот cardview , где возвращаемые результаты основаны на вводе данных пользователем панель поиска.

Вся возвращаемая информация основана на моей базе данных (DB Browser для SQLite). само изображение карточки не активируется, но теперь я хочу, чтобы раздел связанных ключевых слов был кликабельным, чтобы, если пользователь нажимает на одно из связанных ключевых слов, он открывал просмотр карточки этого ключевого слова так же, как если бы пользователь выполнял поиск по Это. (простите за мой плохой английский!) На данный момент я знаю только, что я должен добавить 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();
}

}

Кто-нибудь знает, как я могу это реализовать? Очень признателен. Спасибо!

...