2016-01-13 7 views
3

Я создал динамическое текстовое представление внутри строки listview, но это текстовое изображение не настраивается с помощью пульта дистанционного управления телевизором, я хотел знать, есть ли какое-либо конкретное свойство для textview, которое мне нужно устанавливать?Динамический текст не доступен и доступен для просмотра в Android-телевизоре с дистанционным управлением

Исходный код здесь:

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    final EventData item = list.get(position); 
    ViewHolder holder = null; 
    if (convertView == null) { 
     holder = new ViewHolder(); 
     inflater = (LayoutInflater) ctx 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = inflater.inflate(R.layout.list_item_livesports, null); 

     holder.nameTV = (TextView) convertView.findViewById(R.id.nameTV); 
     holder.teamsTV = (TextView) convertView.findViewById(R.id.teamsTV); 
     holder.startsTV = (TextView) convertView.findViewById(R.id.startTV); 
     holder.channelLL = (TableLayout) convertView 
       .findViewById(R.id.channelLL); 
     holder.catIV = (ImageView) convertView.findViewById(R.id.catIV); 
     convertView.setTag(holder); 
    } else 
     holder = (ViewHolder) convertView.getTag(); 

    holder.nameTV.setText(item.getName() + " : " + item.getTeams()); 
    holder.teamsTV.setText(item.getTeams()); 
    holder.startsTV.setText(item.getStarts()); 


    setDrawals(holder.catIV, item); 

    TableRow tr_head = null; 
    holder.channelLL.removeAllViews(); 
    for (int i = 0; i < item.linkList.size(); i++) { 
     TextView v = new TextView(ctx); 

     final Spanned name = Html.fromHtml("<font color='#0000FF'>" 
       + item.linkList.get(i).channelName + "</font>"); 
     final String link = item.linkList.get(i).channelLink; 
     v.setText(name); 

     if (i == 0 || i == 2 || i == 4 || i == 6 || i == 8 || i == 10) { 
      tr_head = new TableRow(ctx); 
      tr_head.setLayoutParams(new LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
     } 
     v.setPadding(20, 15, 20, 15); 
     tr_head.addView(v); 


     v.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // Toast.makeText(ctx, name, 1).show(); 
       linkListener.onLinkClicked(link); 

      } 
     }); 
     if (i == 0 || i == 2 || i == 4 || i == 6 || i == 8 || i == 10) 
      holder.channelLL.addView(tr_head, new TableLayout.LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 

    } 

    return convertView; 
} 
+0

пожалуйста, показать код? – Androider

+0

Пожалуйста, посмотрите, я редактировал вопрос с исходным кодом – kulvinder

ответ

1

Является ли это в RecyclerView?

С помощью DPAD не существует способа сфокусироваться на TextView, если вы не вручную переопределите и не напишите метод onKeyDown, который выполняет щелчок при нажатии клавиши ввода.

Возможно, вы хотите написать onClickListener для всего представления, а затем, когда будет введен ключ ввода, получить текущий вид и выполнить щелчок.

RecyclerView:

convertView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Do stuff 
     } 
    }); 

И в своей деятельности:

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch(keyCode) { 
    case KeyEvent.KEYCODE_DPAD_CENTER: 
      mRecyclerView.findViewHolderForAdapterPosition(index).itemView.performClick(); 
      break; 
    } 
} 
+0

привет Ник за ваш ответ .. я не использую Recyclerview..but, я получил вашу точку зрения ... проголосовать за ваш ответ, если удастся – kulvinder

Смежные вопросы