标签: android-inflate

324
推荐指数
10
解决办法
24万
查看次数

从xml文件中扩展视图意味着什么?

我是Android开发的新手,并且不断参与布局xml文件中的Inflating视图的引用.我用Google搜索并搜索了开发指南,但仍无法理解其含义.如果有人能提供一个非常简单的例子,那就非常感激了.

android android-inflate

270
推荐指数
5
解决办法
12万
查看次数

如何使用布局来扩充一个视图

我有一个用XML定义的布局.它还包含:

<RelativeLayout
    android:id="@+id/item"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
/>
Run Code Online (Sandbox Code Playgroud)

我想用其他XML布局文件来扩充这个RelativeView.我可能会根据情况使用不同的布局.我该怎么办?我正在尝试不同的变化

RelativeLayout item = (RelativeLayout) findViewById(R.id.item);
item.inflate(...)
Run Code Online (Sandbox Code Playgroud)

但他们都没有做好.

android android-layout android-inflate layout-inflater

213
推荐指数
9
解决办法
39万
查看次数

android.view.InflateException:二进制XML文件行#12:错误膨胀类<unknown>

我收到了很多在subj中显示的类型的错误.这些错误似乎是偶然的,我无法重现它们.从堆栈我可以了解到我的不同布局资源可能会出现这样的错误.XML的行也在变化.

谁能解释为什么会出现这种错误?我能做些什么来解决这个问题?

=============================================================

com.fsp.android.f generated the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

--------- Stack trace ---------
1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649)
2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
3. android.app.ActivityThread.access$2200(ActivityThread.java:131)
4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
5. android.os.Handler.dispatchMessage(Handler.java:99)
6. android.os.Looper.loop(Looper.java:123)
7. android.app.ActivityThread.main(ActivityThread.java:4702)
8. java.lang.reflect.Method.invokeNative(Native Method)
9. java.lang.reflect.Method.invoke(Method.java:521)
10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12. dalvik.system.NativeStart.main(Native Method)
-------------------------------

----------- Cause -----------
android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

1. android.view.LayoutInflater.createView(LayoutInflater.java:513)
2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
6. …
Run Code Online (Sandbox Code Playgroud)

xml resources android android-inflate

140
推荐指数
12
解决办法
29万
查看次数

“setHasOptionsMenu(Boolean): Unit”已弃用。在 Java 中已弃用

如何在 Android 片段中声明菜单?我以前使用的方法现在已被弃用。

起初:

    override fun onCreateView(...): View {
        setHasOptionsMenu(true)
    }
Run Code Online (Sandbox Code Playgroud)
 override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
        super.onCreateOptionsMenu(menu, inflater)
        this.menu = menu
        inflater.inflate(R.menu.menu, this.menu)
    }
Run Code Online (Sandbox Code Playgroud)

android menu fragment android-inflate kotlin

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

DialogFragment OnCreateView与OnCreateDialog的自定义布局

我正在尝试使用自己的布局创建一个DialogFragment.

我见过几种不同的方法.有时布局在OnCreateDialog中设置如下:(我正在使用Mono,但我已经习惯了Java)

public override Android.App.Dialog OnCreateDialog (Bundle savedInstanceState)
{
    base.OnCreateDialog(savedInstanceState);
    AlertDialog.Builder b = new AlertDialog.Builder(Activity);
        //blah blah blah
    LayoutInflater i = Activity.LayoutInflater;
    b.SetView(i.Inflate(Resource.Layout.frag_SelectCase, null));
    return b.Create();
}
Run Code Online (Sandbox Code Playgroud)

第一种方法对我有用......直到我想findViewByID. 在谷歌搜索后使用,我尝试了第二种方法,涉及覆盖OnCreateView

所以我注释掉了两行OnCreateDialog设置布局然后添加了这个:

public override Android.Views.View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    View v = inflater.Inflate(Resource.Layout.frag_SelectCase, container, false);
        //should be able to use FindViewByID here...
    return v;
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个可爱的错误:

11-05 22:00:05.381: E/AndroidRuntime(342): FATAL EXCEPTION: main
11-05 22:00:05.381: E/AndroidRuntime(342): android.util.AndroidRuntimeException: requestFeature() must be called before adding content
Run Code Online (Sandbox Code Playgroud)

我很难过.

java mono android xamarin.android android-inflate

74
推荐指数
6
解决办法
6万
查看次数

在膨胀布局时尝试NPE(尝试在空对象引用上调用虚方法'boolean java.lang.String.equals(java.lang.Object)'

java.lang.NullPointerException当我尝试ScrollView在活动中使用时,我会不断获得.

奇怪的是,我Scrollview在其他活动中使用了完全相同的设置.突然之间,我遇到了错误.我试过清理项目并重建.

而且我已经尝试了这个好老的重启程序.我今天学到了很多关于Null Pointer Exceptions的知识,但是我还没弄清楚为什么我一直在学习渲染问题.

这是java.lang.NullPointerException在XML上引发的:

java.lang.NullPointerException
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:738)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:149)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:835)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:811)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:838)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:811)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:838)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:811)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:223)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:510)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:498)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:498)
    at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:72)
    at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:610)
    at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:607)
    at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:362)
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:607)
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:629)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:652)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:80) …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-inflate layout-inflater inflate-exception

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

在DialogFragment中为AlertDialog增加自定义视图的问题

我正在尝试DialogFragment使用自定义视图创建AlertDialog.必须从xml中扩充此视图.在我的DialogFragment班上,我有:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    return new AlertDialog.Builder(getActivity())
        .setTitle("Title")
        .setView(getActivity().getLayoutInflater().inflate(R.layout.dialog, null))
        .setPositiveButton(android.R.string.ok, this)
        .setNegativeButton(android.R.string.cancel, null)
        .create();
}
Run Code Online (Sandbox Code Playgroud)

我尝试过其他通胀方法,.setView()例如:

.setView(getActivity().getLayoutInflater().inflate(R.layout.dialog, (ViewGroup) getView(), false))
Run Code Online (Sandbox Code Playgroud)

.setView(getActivity().getLayoutInflater().inflate(R.layout.dialog, (ViewGroup) getTargetFragment().getView(), false))
Run Code Online (Sandbox Code Playgroud)

在显示此对话框的片段中设置目标片段之后.

所有这些尝试使我的自定义视图膨胀都会导致以下异常:

E/AndroidRuntime(32352): android.util.AndroidRuntimeException: requestFeature() must be called before adding content
E/AndroidRuntime(32352):        at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:214)
E/AndroidRuntime(32352):        at com.android.internal.app.AlertController.installContent(AlertController.java:248)
E/AndroidRuntime(32352):        at android.app.AlertDialog.onCreate(AlertDialog.java:314)
E/AndroidRuntime(32352):        at android.app.Dialog.dispatchOnCreate(Dialog.java:335)
E/AndroidRuntime(32352):        at android.app.Dialog.show(Dialog.java:248)
E/AndroidRuntime(32352):        at android.support.v4.app.DialogFragment.onStart(DialogFragment.java:339)
E/AndroidRuntime(32352):        at android.support.v4.app.Fragment.performStart(Fragment.java:1288)
E/AndroidRuntime(32352):        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:873)
E/AndroidRuntime(32352):        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1041)
E/AndroidRuntime(32352):        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:625)
E/AndroidRuntime(32352):        at …
Run Code Online (Sandbox Code Playgroud)

android android-inflate android-fragments layout-inflater android-alertdialog

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

在另一个布局中以编程方式扩展布局

我需要帮助我的Android应用程序.我需要在另一个布局中膨胀布局,我不知道我是怎么做的.我的xml代码是这样的:

  • item.xml - 我需要膨胀多个xml(取决于变量号)

        <RelativeLayout
             android:id="@+id/cartel_N1"
             android:layout_width="150dp"
             android:layout_height="match_parent"
             android:background="@color/tabhost_background_pressed"
             android:layout_marginRight="22dp"
             android:orientation="vertical" >
    
        <ImageView 
            android:id="@+id/img_N1"
            android:layout_width="120dp"
            android:layout_height="120dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="15dp"
            android:layout_marginRight="15dp"
            android:src="@drawable/mcdonalds_icon" />
    
        <TextView 
            android:id="@+id/title_N1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="McDonals del CC Alcampo"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:textSize="15sp" />
    
        <TextView 
            android:id="@+id/categoria_N1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="CATEGORIA"
            android:textSize="16sp"
            android:textStyle="bold"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp" />
    
        <RelativeLayout 
            android:id="@+id/stars_and_distance_N1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <ImageView
                android:id="@+id/stars_N1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/stars_25"
                android:layout_marginLeft="15dp"
                android:layout_marginTop="7dp" />
    
    
            <TextView
                android:id="@+id/distance_N1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="200m"
                android:textSize="12sp"
                android:layout_alignParentRight="true"
                android:layout_marginRight="15dp"
                android:gravity="center_vertical"
                android:layout_marginTop="3dp" />
    
    
            <ImageView
                android:id="@+id/icon_pos_N1"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:src="@drawable/marker_distance"
                android:layout_toLeftOf="@id/distance_N1"
                android:layout_marginTop="7dp" />
    
        </RelativeLayout><LinearLayout …
    Run Code Online (Sandbox Code Playgroud)

xml android android-layout android-inflate

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

Android应用程序的插件架构?

本问题已移至https://softwarerecs.stackexchange.com/questions/27841/plugins-architecture-for-an-android-app


我想为开源应用程序实现一个插件系统,因为它已经变得非常庞大,只有少数用户需要许多功能.发布不同的应用程序并不是一个好的解决方案,因为userA需要feature7和feature24而userB需要feature39和feature24.

我在哪里可以找到插件架构的好例子?

这是我想要一个插件能够做到的:

例如,其中一个插件必须在特定屏幕上添加一个按钮,单击此按钮会增加应用程序数据库中的值.据我所知,这对内容提供商和意图不可行.

我想避免让核心应用程序的代码复杂化,到处都是大量的钩子.

插件的形式可以是SD卡上的文件,应用程序或其他任何内容.

android dalvik dex android-inflate layout-inflater

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