gpt4 book ai didi

android - 在布局中多次使用相同的 View

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:22 24 4
gpt4 key购买 nike

我有一个 Activity,其中也有一个 ListView。我在 getView 方法中将一些 EditText 框、按钮等加载到那个 ListView

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);
}

在多个实例中,我还向同一个 List 添加了一个 Button。基本上,我只是根据 ListView 的行索引将特定布局文件加载到特定行。该按钮的 ID 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>

现在,由于我在此 Activity 中有同一个按钮的多个实例,我无法为这些按钮中的每一个分配唯一的 ID。从技术上讲,所有按钮现在都拥有相同的 ID。

有什么方法可以为这些按钮中的每一个分配不同的 ID?以编程方式?

最佳答案

您需要在按钮父布局上使用 findViewById 才能更改特定按钮上的 ID。

例如:

convertView = mInflater.inflate(R.layout.next, null);
Button buttonIWantToChangeID = convertView.findViewById(R.whatever.Button_title);
buttonIWantToChangeID.setId(1000+listPosition);

注意 findViewById 用于 convertView...

关于android - 在布局中多次使用相同的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10877283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com