2016-01-13 33 views
3

我已經在列表視圖的行內創建了動態文本視圖,但該文本視圖不是電視遙控器可以關注的,我想知道是否有任何特定的textview屬性,我需要設置?動態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方法,該方法在輕擊Enter鍵時執行單擊操作。

您可能希望爲整個視圖編寫一個onClickListener,然後當檢測到Enter鍵時,獲取當前視圖並執行單擊。

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 ..但我有你的觀點..將投票你的答案,如果成功 – kulvinder