这个应用程序是一个简单的电话簿,这是联系人的xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imgAvatar"
android:layout_width="70dip"
android:layout_height="70dip"
android:scaleType="fitCenter"
android:layout_toLeftOf="@+id/tvName"
android:layout_toStartOf="@+id/tvName" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/linearLayout">
</LinearLayout>
<TextView
android:id="@+id/tvName"
android:layout_width="276dp"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_gravity="right"
android:layout_below="@+id/linearLayout"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textAlignment="center" />
<TextView
android:id="@+id/tvPhone"
android:layout_width="276dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_below="@+id/tvName"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textAlignment="center" />
</RelativeLayout>
和联系人包含在此listView
中<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MyActivity">
<ListView
android:id="@+id/listPhone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
当我点击ListView上的联系人时,我如何获取名为tvPhone的文本字段的值?
答案 0 :(得分:1)
如果您只想获取TextView的信息,请按以下步骤操作:
String tvValue = tv.getText().toString();
如果从适配器加载值,并且如果要将值存储在数组列表中,那么在 getView()方法的适配器端会有类似的内容:
yourTextView.setText(mDetailsArrayList.get(position));
要获得该值,您将再次使用以下方法获取值:
getText().toString()
根据您的值的样子,您可能有int,float等值。
在此示例中,它是您要返回的String值。
现在,如果你在同一个布局上有一个ListView和一个textView,你可以使用上面的方法从textView中获取值,并将它添加到arrayList中,例如,更新listView,你只需通知更改使用 notifyDataSetChanged()方法。
修改强>
对于ListView上的onClick事件,只需使用 onItemClickListener :
yourListView.setOnItemClickListener(listItemClickListener);
public OnItemClickListener listItemClickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String getText = yourArrayList.get(position).getTextFromTextViewMethod();
}
};
祝你好运.. :)