标签: android-inflate

Android:LayoutInflater和findViewById的困境

我正在尝试在循环中使用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)

我的列表的示例输出:

  • 04 - 第04集
  • 剧集标题
  • 剧集标题
  • 剧集标题

它应该看起来像这样:

  • 01 - 第01集
  • 02 - 第02集
  • 03 - 第03集
  • 04 - 第04集

我需要做些什么来确保从我的膨胀布局中获取相应的唯一textview id?

android android-inflate

4
推荐指数
1
解决办法
6950
查看次数

用另一个布局替换ListView行onClick

我有一个只有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

4
推荐指数
1
解决办法
1万
查看次数

Android中的AsyncTask循环中的AsyncTask

我正在创建一个应用程序,它将更新城市的天气详情.循环将是一个城市列表.所以我想要列表中的城市.我将使用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 android-inflate android-asynctask

4
推荐指数
2
解决办法
1万
查看次数

如何在片段中使用inflater方法

嗨我正在使用android.I曾试图将布局膨胀到片段中,但它在代码中显示错误"方法getLayoutInflater()未定义为类".如何在片段中访问布局?请帮帮我,我是android的新手.谢谢

这是我的代码

        View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
         listView1.addHeaderView(header); 
Run Code Online (Sandbox Code Playgroud)

android fragment android-inflate

3
推荐指数
1
解决办法
1万
查看次数

在onCreateView之外使用android Inflate

我有一个片段.在我的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方法之外?如何

android android-layout android-inflate android-fragments

3
推荐指数
1
解决办法
3803
查看次数

高度和边距不适用于 inflate 和 addview?

这是我的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

android android-inflate kotlin

3
推荐指数
1
解决办法
803
查看次数

如何从另一个XML文件中查找ViewById?

我用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)

请帮忙

android android-layout android-inflate

2
推荐指数
1
解决办法
1万
查看次数

如何重新启动 onCreateInputView()?

我有一个带有 onCreateInputView() 方法的键盘,我必须动态地编辑键盘,并且当特定首选项发生变化时我必须重新启动 onCreateInputView()

android android-intent android-softkeyboard android-inflate

2
推荐指数
1
解决办法
1631
查看次数

Android膨胀的文本视图忽略宽度

我在布局 xml 文件中有一个布局。我有固定宽度 110dp。在布局内,我有一个固定宽度 100dp 的 TextView。

当我使用 LayoutInflater 膨胀视图并将其添加到 LinearLayout 中时,TextView 及其父 RelativeLayout 会忽略设置的宽度并拉伸到文本的大小。我希望文本以指定的宽度换行,并根据需要采用尽可能多的高度。

我试图在膨胀后强制视图的宽度(将 dps 转换为 pxs),但仍然没有。

有什么建议?

布局 XML

<?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)

android word-wrap textview android-inflate layout-inflater

2
推荐指数
1
解决办法
1110
查看次数

我可以将 XML 布局转换为可绘制布局吗?

所以我想将 xml 布局作为视图的背景,但它必须是可绘制的。那么有什么办法可以将 it 变成可绘制的吗?

我也尝试过给它充气,但没有任何效果符合我想要的:(

提前谢谢。

android drawable android-inflate

2
推荐指数
1
解决办法
4551
查看次数