我有Activity
,其中还有一个ListView
。我在EditText
方法中向ListView
加载了一些getView
框,按钮等。
if(position==0)
{
((TextView)convertView.findViewById(R.id.textview_settings)).setText("User Information");
}
else if(position==1 || position==2 || position==5 || position==6 || position==7 || position==10 || position==13)
{
((LinearLayout)convertView.findViewById(R.id.linear_settings)).setVisibility(View.VISIBLE);
((RelativeLayout)convertView.findViewById(R.id.Relative_home)).setVisibility(View.GONE);
if(position==1 || position==5 || position==5)
((EditText)convertView.findViewById(R.id.edittext_settings)).setBackgroundResource(R.drawable.f_t_1_iphone);
else if(position==7 || position==2)
((EditText)convertView.findViewById(R.id.edittext_settings)).setBackgroundResource(R.drawable.f_t_3_iphone);
else if(position==6)
((EditText)convertView.findViewById(R.id.edittext_settings)).setBackgroundResource(R.drawable.f_t_2_repeat_iphone);
else if(position==13 || position==10)
((EditText)convertView.findViewById(R.id.edittext_settings)).setBackgroundResource(R.drawable.f_t_4_iphone);
}
在多个实例中,我还在同一个Button
添加List
。基本上,我只是根据ListView
的行索引将特定的布局文件加载到特定的行。该按钮的标识为button_title
- 在我的xml中定义。
convertView = mInflater.inflate(R.layout.next, null); *//inside getView method*
next.xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/linear">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/frame_settings">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/Relative_home"
android:orientation="horizontal" >
<TextView
android:id="@+id/textview_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|left"
android:layout_margin="5dp"
android:text=""
android:textSize="15dp"
android:textStyle="bold"
android:typeface="sans" android:layout_alignParentLeft="true"/>
<ImageButton
android:id="@+id/Button_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginRight="10dp"
android:background="@drawable/edit_button_pressed" android:layout_alignParentRight="true"/>
</RelativeLayout>
<LinearLayout
android:id="@+id/linear_settings"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edittext_settings"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:textStyle="bold"
android:typeface="sans" android:layout_alignParentLeft="true"/>
</LinearLayout>
</FrameLayout>
</LinearLayout>
现在,由于此活动中有多个相同按钮的实例,因此我无法为每个按钮分配唯一的ID。从技术上讲,所有按钮现在都具有相同的ID。
有什么方法可以为每个按钮分配不同的ID?编程?
答案 0 :(得分:2)
您需要在按钮父布局上使用findViewById才能更改特定按钮上的ID。
EGS:
convertView = mInflater.inflate(R.layout.next, null);
Button buttonIWantToChangeID = convertView.findViewById(R.whatever.Button_title);
buttonIWantToChangeID.setId(1000+listPosition);
注意findViewById用于convertView ...
答案 1 :(得分:1)
以下是更改视图ID的方法
Button button = context.findViewById(R.whatever.button);
button.setId();// <-- put the new id as the param
注意:请确保您没有任何冲突的内容!