2

テキストビューを線形レイアウトに動的に追加していて、線形レイアウトの OnClickListener でクリックされたテキストビューの名前を取得したい.これはコードです:

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

4 に答える 4

1

クリック リスナーを各テキスト ビューに追加すると、ビューが onClick のパラメーターとして受信されます。

于 2012-12-27T11:52:07.603 に答える
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);   
});
于 2012-12-27T11:55:33.987 に答える
1

OnClickListener は TextView で動作します。TextView の Clickable プロパティを true に設定してください。

于 2012-12-27T11:57:36.057 に答える
1

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

私はこの仕事を願っています

于 2012-12-27T11:59:08.747 に答える