我有一个ExpandableListView
的视图,其中包含以下视图作为标题视图。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="10">
<TextView
android:id="@+id/lblListHeader"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="30sp"
android:background="#ffa500"
android:layout_weight="2"/>
<Button android:layout_height="match_parent" android:layout_width="match_parent"
android:id="@+id/b1" android:layout_weight="8" android:text="text" android:background="#ffa500"
android:focusable="false" android:onClick="openChildDialog" />
</LinearLayout>
按下按钮时调用方法openChildDialog
。但是,由于根据列表标题的数量会有很多此按钮的实例,我如何知道按下哪个按钮实例?
编辑:这里的目标是,因为每个TextView
都有一个Button
,根据按下的按钮,我想获得相应的TextView
文本{1}}。
请帮忙。提前谢谢。
答案 0 :(得分:0)
每次使用getGroupView()
方法时,您都可以将标记设置为按钮,以便稍后检索并检测它。
如果您显示代码,我会提供更多信息。
答案 1 :(得分:0)
我真的怀疑你需要它(请在识别按钮后让我知道你想要做什么),但如果你真的想要识别按下的按钮,你可以为每个按钮分配一个唯一的唯一整数或字符串您使用protected void onStart()
{
Button searchrestrauntbutton = (Button)findViewById(R.id.search);
searchrestrauntbutton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v)
{
EditText area = (EditText)findViewById(R.id.area);
EditText locality = (EditText)findViewById(R.id.locality);
String area1 = area.getText().toString();
String locality1 = locality.getText().toString();
if(area1.equals(""))
{
area.setError("please enter an area");
}
else if(locality1.equals(""))
{
locality.setError("please provide locality");
}
else
{
Intent intentsearch = new Intent(HomePage.this,displayrestraunt.class);
startActivity(intentsearch);
}
}
});
}
在适配器类中对其进行充气,稍后在setTag(Object object)
方法中,您可以使用openChildDialog()
在该视图方法上获取值。
确保将值分配给按钮,而不是整个项目的视图。