如何在OnClickListener中获取包含在线性布局中的textview名称?

时间:2012-12-27 11:49:12

标签: java android android-linearlayout onclicklistener

我正在动态地将textviews添加到线性布局中,并希望获得在线性布局的OnClickListener中单击的textview的名称。这是代码:

m_lvSideIndex = (LinearLayout)ShowTheContacts1.this.findViewById(R.id.sideIndex);
TextView l_tempText = null;

for(int l_a = 0;l_a < m_arrayOfAlphabets.length;l_a++)
{
    l_tempText = new TextView(ShowTheContacts1.this);
    l_tempText.setGravity(Gravity.CENTER);
    l_tempText.setTextSize(15);
    l_tempText.setTextColor(getResources().getColor(R.color.black));
    LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1);
    l_tempText.setLayoutParams(params);;
    l_tempText.setText(m_arrayOfAlphabets[l_a]);
    m_lvSideIndex.addView(l_tempText);
    m_lvSideIndex.setTag(l_a);
}

m_lvSideIndex.setOnClickListener(new OnClickListener() 
{               
    @Override
    public void onClick(View v) 
    {
        String l_itemSelected = (String)v.toString();  //Want to get the name of textview selected here
});

请帮帮我。谢谢。

4 个答案:

答案 0 :(得分:1)

将您的点击监听器添加到每个文本视图,然后您将在onClick中接收视图作为参数。

答案 1 :(得分:1)

你可以使用getTag()

的帮助

首先是setTag()值,即TextName

m_lvSideIndex.setTag(m_arrayOfAlphabets[l_a]);
m_lvSideIndex.setTag(l_a, R.id.sideIndex);

并通过getTag()获取值

m_lvSideIndex.setOnClickListener(new OnClickListener() 
{               
    @Override
    public void onClick(View v) 
    {
        String l_itemSelected = (String)v.getTag(); 
        Integer l_position = (Integer)v.getTag(R.id.sideIndex);   
});

答案 2 :(得分:1)

OnClickListener适用于TextView。确保将TextView的Clickable属性设置为true。

答案 3 :(得分:1)

((TextView的)v.findviewbyTag(R.id.label))的getText();

我希望这项工作