2013-03-14 2 views
2

Я сделал свой собственный заказ ListView и в каждой строке есть TextView s.ClickView TextView внутри настраиваемого ListView

Я намерен сделать эти textview s внутри каждой строки listview кликабельными. Поэтому всякий раз, когда пользователь нажимает на любой из них, он перенаправляет его в другое место.

Фактически, когда пользователь нажимает на элемент ListView, он нажимает на него все, а textviews игнорируются.

В заключение, когда я нажимаю на элемент ListView, я не хочу, чтобы элемент Listview отвечал, я хочу, чтобы Textview ответил на Listview.

EDIT:

Вот как я настроить мой взгляд:

String[] from = {"value1", "value2"}; 
int[] to = {R.id.label, R.id.label2}; 
SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, data, R.layout.rowlayout, from, to); 
+0

вставьте свой код – stinepike

+0

^это. что ты уже испробовал? Вы добавили OnClickListeners в отдельные текстовые элементы или вы переопределили onListItemClick()? – crazylpfan

+0

Я еще ничего не пробовал, что мне делать? – Alex

ответ

2

В классе адаптера, внутри метода GetView() вы можете выполнить OnClick действия, как этого

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    Holder holder = null; 
    if (row == null) { 
     LayoutInflater vi = 
       (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row = vi.inflate(R.layout.listitem, null); 
     holder.txtTitle1 = (TextView) row.findViewById(R.id.heading1); 
     holder.txtTitle2 = (TextView) row.findViewById(R.id.heading2); 

     holder.txtTitle1 .setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
      } 
     }); 

     holder.txtTitle2 .setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
      } 
     }); 
    } 
    return row; 
} 
///// 
/////////// 

static class Holder { 
    TextView txtTitle1; 
    TextView txtTitle2; 
} 
2
set your TextView in your layot.xml 

<TextView 
    android:id="@+id/YourID" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:clickable="true" 

/> 

, а затем на вашем пользовательском адаптере

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    Holder holder = null; 
    if (row == null) { 
     LayoutInflater vi = 
       (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row = vi.inflate(R.layout.youLayout, null); 
     holder.txt1 = (TextView) row.findViewById(R.id.tx1); 
     holder.txt2 = (TextView) row.findViewById(R.id.tx2); 

     holder.txt1 .setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
//your statements    
} 
     }); 

     holder.txt2 .setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
//your statements 
      } 
     }); 
    } 
    return row; 
} 
Смежные вопросы