- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
需要导入什么或者如何在activity以外的地方调用Layout inflater?
public static void method(Context context){
//this doesn't work the getLayoutInflater method could not be found
LayoutInflater inflater = getLayoutInflater();
// this also doesn't work
LayoutInflater inflater = context.getLayoutInflater();
}
我只能在 Activity 中调用 getLayoutInflater
,这是限制吗?如果我想创建自定义对话框并且我想为它膨胀 View ,或者如果我想从服务中显示带有自定义 View 的 Toast 消息怎么办,我只有来自服务的上下文我没有任何 Activity 但我想显示自定义消息。
我需要在代码中不在 Activity 类中的地方使用充气器。
我该怎么做?
最佳答案
你可以使用这个外部 Activity ——你只需要提供一个Context
:
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
然后,为了检索不同的小部件,您可以扩展布局:
View view = inflater.inflate( R.layout.myNewInflatedLayout, null );
Button myButton = (Button) view.findViewById( R.id.myButton );
编辑自 2014 年 7 月起
大卫的 answer关于如何获得 LayoutInflater
实际上比我的更正确(尽管它仍然有效)。
关于android - 在不活动的地方调用 getLayoutInflater(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7803771/
这个问题在这里已经有了答案: getLayoutInflater() in fragment (5 个答案) 关闭 4 年前。 我正在尝试编写一个应用程序,从在线 MySQL 数据库下载某些事件的数
我想创建一个带有 2 个 TextView 的简单 ListView。原始类:https://github.com/thest1/LazyList/blob/master/src/com/fedorv
此代码属于我的自定义微调器的数组适配器。我在 getLayoutInflater() 方法上收到无法解析方法的错误,我不知道为什么。任何帮助将不胜感激。 public View getCust
需要导入什么或者如何在activity以外的地方调用Layout inflater? public static void method(Context context){ //this do
在 socialNetworksActivity 类中,我有一个方法: public void getResultFromFBPost(String result) { if (result.eq
研究一些(已知是好的)代码我可以看到逻辑如下: if (getContext() instanceof Activity) { inflater=((Activity)getContext
我想在 Fragment 中实现一个警告对话框。 我创建了一个名为 MyDialog 的新类,其中包含: public class MyDialog { public static A
我试图在 Fragment 上的 ListView 中显示我的搜索结果,但它失败了: LayoutInflater inflater = getLayoutInflater(); The method
我可以知道的意思吗 public View getView(int position, View view, ViewGroup parent){ if (view ==nu
我想显示 content_list_drink_details.xml 中的 TextView(配料名称和配料价格)到 cart_layout.xml 的适配器。 但看起来我的 getLayoutIn
当我用下面的代码编译程序时,发生了一个错误。它说 getLayoutInflater ( ) 未定义。我该如何解决? final LayoutInflater inflater = getLayou
我坚持创建自定义适配器。我想在 ListView 内的按钮上设置 setOnClickListener,我发现这个主题看起来不错 how-to-setonclicklistener-on-the-bu
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState
现在,为了填充我的 GridView,我在我的每个 Android Activity (其中大部分)上使用了扩展的 BaseAdapter 类。 为了更易于阅读和维护,我尝试将所有 BaseAdapt
我想在我的 webView 中添加全屏模式 - 用于 YouTube 视频 -。我发现了这个例子 https://stackoverflow.com/a/16179544/5070495 。我已遵循所
tics 有 3 个项目。以下代码创建了 3 个票证项目,但始终设置第一个票证的 TextView 的文本。 public void onSuccess(int i, Header[] headers
我正在尝试使用自定义日期选择器 date picker 但是我在 fragment 中膨胀根布局时遇到了这个错误: public void button_click(View view) {
什么是真正的区别: return context.getLayoutInflater().inflate(R.layout.my_layout, null); Inflate a new view h
简单的“不”回答会让我平静下来。如果有什么不同,那是什么? 最佳答案 没有 只要调用 getLayoutInflater() 的 Activity 或 Window 与调用 getSystemServ
我得到这个异常Attempt to invoke virtual method 'android.view.LayoutInflater android.app.Activity.getLayoutI
我是一名优秀的程序员,十分优秀!