我正在尝试在循环中使用LayoutInflater,但每次实例化其中一个人时,我需要修改每个实例中至少2个TextView.我现在所拥有的内容恰当地即时发布,并且像我想要的那样添加了膨胀的xml视图,但结果是只有第一个instatiaton的资源被修改,因此它被多次覆盖.
LayoutInflater inflater;
TextView eTitle;
for(String[] episode : episodes) {
//Log.d("Episodes", episode[0] + " / " + episode[2]);
inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.episode_list_item, listView);
eTitle = (TextView) findViewById(R.id.episode_list_item_title);
eTitle.setText(episode[2]);
}
Run Code Online (Sandbox Code Playgroud)
我的列表的示例输出:
它应该看起来像这样:
我需要做些什么来确保从我的膨胀布局中获取相应的唯一textview id?
我有一个只有TextView的ListView.我想要一个实现,如果我单击ListView行,应该出现带有替换按钮的edittext,无论我在该edittext中输入什么,然后单击替换,listrow应该更新.我面临的主要问题是在List行上放置一个布局.任何人都告诉我如何实现这个目标?
public class ContextMenuActivity extends Activity {
private ListView list;
TextView tv;
ArrayList<String> alistItems;
int loopCount;
CustomAdapter adapter;
LayoutInflater inflater;
TextView textView;
EditText edtTextToReplace;
RelativeLayout rl_inflate;
View child;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contextmenulist);
initComponents();
setActionListener();
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Options");
menu.add(0, v.getId(), 0, "Edit");
menu.add(0, v.getId(), 0, "Delete");
/*
* MenuInflater inflater = getMenuInflater();
* inflater.inflate(R.menu.context_menu, menu);
*/
}
private void initComponents() {
inflater = ContextMenuActivity.this.getLayoutInflater();
list …Run Code Online (Sandbox Code Playgroud) android listview android-layout android-listview android-inflate
我正在创建一个应用程序,它将更新城市的天气详情.循环将是一个城市列表.所以我想要列表中的城市.我将使用AsyncTask方法发送请求和解析它.同时我正在给布局充气,我必须在布局中放置与城市相对应的所有天气细节.如何实现这一点请帮助我.
我正在膨胀的XML文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/depart_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/flight_depart_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:padding="3dip"
android:layout_marginTop="10dp"
android:src="@drawable/f1" />
<TextView
android:id="@+id/depart_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/flight_depart_image"
android:text=""
android:textColor="#666666"
android:textSize="25sp"
android:textStyle="bold" />
<TextView
android:id="@+id/depart_airport_city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/depart_time"
android:text=""
android:textColor="#666666"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:id="@+id/depart_airport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/depart_airport_city"
android:layout_marginLeft="125dp"
android:text="N/A"
android:textColor="#666666"
android:textSize="12sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/weather_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft ="40dp"
android:layout_toRightOf="@+id/depart_airport"
android:src="@drawable/image" />
<TextView
android:id="@+id/tempraturetext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:layout_toRightOf="@+id/weather_image"
android:text="Temp:" />
<TextView
android:id="@+id/temprature"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:layout_toRightOf="@+id/tempraturetext" …Run Code Online (Sandbox Code Playgroud) 嗨我正在使用android.I曾试图将布局膨胀到片段中,但它在代码中显示错误"方法getLayoutInflater()未定义为类".如何在片段中访问布局?请帮帮我,我是android的新手.谢谢
这是我的代码
View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
listView1.addHeaderView(header);
Run Code Online (Sandbox Code Playgroud) 我有一个片段.在我的On create中,我按照以下方式设置了我的inflater.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v= inflater.inflate(R.layout.dashboard_two, container, false);
getActivity().getActionBar().setTitle("NV Technologies");
new HttpRequestFaultList().execute();
return v;
}
Run Code Online (Sandbox Code Playgroud)
我想更改inflater ti显示在onCreate视图之外的不同布局.我试过了:
v= inflater.inflate(R.layout.custom_dash, container, false);
Run Code Online (Sandbox Code Playgroud)
custom_dash.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/testFrag"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="269dp"
android:layout_height="387dp"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/message" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
但因为它不在onCreate中,所以不存在inflater或容器.我想在catch块中更改Layout,如果有catch,则Layout必须更改.甚至可以在片段中更改布局但在onCreate方法之外?如何
这是我的EditText
<?xml version="1.0" encoding="utf-8"?>
<EditText
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="49dp"
android:layout_marginTop="3dp"
android:text=""
android:ems="10"
android:gravity="center_vertical"
android:imeOptions="actionNext"
android:maxLines="1"
android:background="@drawable/profile_edt_round_corners"
android:drawablePadding="5dp"
android:textSize="14sp"
android:hint=""
tools:ignore="RtlSymmetry"
android:textColor="#4a4a4a"/>
Run Code Online (Sandbox Code Playgroud)
膨胀视图
private fun getRoundedEditText() =
layoutInflater.inflate(R.layout.v_rounded_corners, null) as EditText
Run Code Online (Sandbox Code Playgroud)
设置值
private fun addDataToParents() {
val editTextView = getRoundedEditText()
editTextView.setText("Parent 1")
ll_parents_guardian_container.addView(editTextView)
val editTextView2 = getRoundedEditText()
editTextView2.setText("Parent 2")
ll_parents_guardian_container.addView(editTextView2)
}
Run Code Online (Sandbox Code Playgroud)
哪里ll_parents_guardian_container
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ll_parents_guardian_container"
android:orientation="vertical">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
然而,我已经在 XML 中定义的layout_marginTop和并没有反映在那里。layout_height
我用addevent.xml连接addevent.java是listview的内容,listview从另一个XML文件"item.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:orientation="vertical" >
<Button
android:id="@+id/d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:drawablePadding="0dip"
android:drawableRight="@drawable/icon_name" />
<EditText
android:id="@+id/en"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/d" >
</EditText>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
现在我需要findviewbyId不是来自基本的xml文件,而是形成另一个"item.xml"
我尝试使用LayoutInflater作为代码,但它不起作用:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.addevent);
myList = (ListView) findViewById(R.id.MyList);
myList.setItemsCanFocus(true);
myAdapter = new MyAdapter();
myList.setAdapter(myAdapter);
final LayoutInflater factory = getLayoutInflater();
final View textEntryView = factory.inflate(R.layout.item, null);
tvDisplayDate = (EditText)textEntryView.findViewById(R.id.editd);
btnChangeDate=(Button)textEntryView.findViewById(R.id.d);
Run Code Online (Sandbox Code Playgroud)
请帮忙
我有一个带有 onCreateInputView() 方法的键盘,我必须动态地编辑键盘,并且当特定首选项发生变化时我必须重新启动 onCreateInputView()
我在布局 xml 文件中有一个布局。我有固定宽度 110dp。在布局内,我有一个固定宽度 100dp 的 TextView。
当我使用 LayoutInflater 膨胀视图并将其添加到 LinearLayout 中时,TextView 及其父 RelativeLayout 会忽略设置的宽度并拉伸到文本的大小。我希望文本以指定的宽度换行,并根据需要采用尽可能多的高度。
我试图在膨胀后强制视图的宽度(将 dps 转换为 pxs),但仍然没有。
有什么建议?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="110dp"
android:layout_height="match_parent"
android:padding="1dp" >
<RelativeLayout
android:layout_centerInParent="true"
android:id="@+id/info_layout"
android:layout_width="108dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:background="@drawable/rounded_corners_grey_3">
<ImageView
android:contentDescription="@string/image"
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"/>
<ImageView
android:contentDescription="@string/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/image_overlay"
android:layout_centerInParent="true"/>
<LinearLayout
android:id="@+id/detailsLayout"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="left"
android:layout_margin="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
>
<TextView
android:id="@+id/name"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textSize="12sp"
android:gravity="center"
android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"
/>
<TextView
android:id="@+id/details"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:textColor="@color/bethere_green"
android:textSize="12sp"
android:layout_weight="1" …Run Code Online (Sandbox Code Playgroud) 所以我想将 xml 布局作为视图的背景,但它必须是可绘制的。那么有什么办法可以将 it 变成可绘制的吗?
我也尝试过给它充气,但没有任何效果符合我想要的:(
提前谢谢。