【问题标题】:Get text of a neighbouring Textview on click单击时获取相邻 Textview 的文本
【发布时间】:2017-08-01 02:54:25
【问题描述】:

我正在创建 4 个文本视图,在其中存储字符串。其中一个有一个链接字符串,它是隐藏的。这些是由 ListAdaptor 添加到 ListView 中的。在运行时,它看起来像这样。

当我单击相邻的 Textview 时,我需要能够使用隐藏的 Textview 中的文本。我已经为要单击的 Textview 设置了一个 onClick 适配器。如何在隐藏的相邻 Textview 中获取文本?我尝试使用标签,但这个概念让我无法理解。

我的布局资源:list_item.xml(已修剪):

<TextView
android:id="@+id/title"        
android:onClick="onClick"
android:tag="name"
/>

<TextView
android:id="@+id/hash"       
android:visibility="gone"
/>

<TextView
android:id="@+id/size"        
/>

<TextView
android:id="@+id/link"
android:tag="link"       
android:visibility="gone"
/>

活动布局:activity_main.xmlFull Code

<RelativeLayout>
    <ListView android:id="@+id/list"/>
</RelativeLayout>

我的Activity code的一部分:

public class MainActivity extends AppCompatActivity {

    public void onClick(View v) {
        String Msg = ((TextView) v).getText().toString();
//        TextView txtTitle = (TextView) v.getTag();
//        String Me = (String) v.getTag();

//      TextView txtlink = (TextView)v.getTag("link");
        String Me = txtlink.getText().toString();
                Toast.makeText(MainActivity.this, "CLICKED" + Msg + Me,
                Toast.LENGTH_LONG).show();
    }

当我点击带有id title的TextView时,我需要获取带有id链接的TextView的文本。

这就是我创建 ListView 的方式:

lv = (ListView) findViewById(R.id.list);
ListAdapter adapter = new SimpleAdapter(
    MainActivity.this, showList,
    R.layout.list_item, new String[]{"title", "url", "hash",
    "size"}, new int[]{R.id.title, R.id.link,R.id.hash, R.id.size});

lv.setAdapter(adapter);

完整代码: MainActivity

【问题讨论】:

  • 你在哪里使用txtlink?您在哪个 XML 中有 txtlink
  • @Rahul 在 list_item.xml 中。
  • 好的,你在哪里初始化它
  • @Rahul 我添加了指向整个代码的链接。
  • 为什么不在ListView上添加onItemClickListener

标签: android textview


【解决方案1】:

添加 OnItemSelectedListener 并从代码和 xml 文件中删除您的 onClick 方法。

lv.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(MainActivity.this, showList.get(position), Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多