标签: android-context

如何从任何地方获取包名?

我知道Context.getApplicationContext()View.getContext()的可用性,通过它我可以实际调用Context.getPackageName()来检索应用程序的包名.

如果我从一个View或一个Activity对象可用的方法调用它们,但是如果我想从一个完全独立的类中找到包名而没有View或者Activity,有没有办法(直接或间接)?

android package android-context

324
推荐指数
7
解决办法
31万
查看次数

何时调用活动上下文或应用程序上下文?

有很多关于这两种背景的帖子......但我仍然没有把它弄得恰到好处

据我所知到目前为止:每个都是它的类的一个实例,这意味着一些程序员建议你this.getApplicationContext()尽可能经常使用,以免"泄漏"任何内存.这是因为另一个this(获取Activity实例上下文)指向Activity每次用户倾斜手机或离开应用程序等时被销毁的内容.显然垃圾收集器(GC)没有捕获,因此使用太多内存..

但是,任何人都可以提出一些非常好的编码示例,它们是正确的使用this(获取当前Activity实例的上下文)并且应用程序上下文将是无用的/错误的吗?

android this android-context

259
推荐指数
5
解决办法
7万
查看次数

getString在Context或Activity之外

我发现R.string将硬编码字符串保留在我的代码中非常棒,我想继续在一个实用程序类中使用它,该实用程序类与我的应用程序中的模型一起生成输出.例如,在这种情况下,我正在从活动之外的模型生成电子邮件.

是否可以在getString外面使用ContextActivity?我想我可以通过当前的活动,但似乎没必要.如果我错了请纠正我!

编辑:我们可以使用访问资源Context吗?

java string android android-context android-resources

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

活动上下文与应用上下文的区别

这让我很难过,我在Android 2.1-r8 SDK中使用它:

ProgressDialog.show(getApplicationContext(), ....);
Run Code Online (Sandbox Code Playgroud)

还有

Toast t = Toast.makeText(getApplicationContext(),....);
Run Code Online (Sandbox Code Playgroud)

使用getApplicationContext()崩溃ProgressDialogToast....导致我这个问题:

尽管分享了"上下文"的措辞,但活动上下文和应用程序上下文之间的实际差异是什么?

android android-context

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

getActivity()在Fragment函数中返回null

我有一个像这样的公共方法的片段(F1)

public void asd() {
    if (getActivity() == null) {
        Log.d("yes","it is null");
    }
}
Run Code Online (Sandbox Code Playgroud)

是的,当我调用它(来自Activity)时,它是null ...

FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction();
F1 f1 = new F1();
transaction1.replace(R.id.upperPart, f1);
transaction1.commit();
f1.asd();
Run Code Online (Sandbox Code Playgroud)

它一定是我做错了,但我不知道那是什么

null android android-context android-fragments android-activity

182
推荐指数
7
解决办法
15万
查看次数

在不在活动中的地方调用getLayoutInflater()

需要导入什么或如何在活动以外的地方调用布局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();
}
Run Code Online (Sandbox Code Playgroud)

getLayoutInflater只能在活动中打电话,这是限制吗?如果我想创建自定义对话框并且我想为它充气视图,或者如果我想要从服务中显示自定义视图的Toast消息,我只有来自服务的上下文我没有任何活动该怎么办?但我想显示自定义消息.

我需要在代码中不在activity类中的地方使用inflater.

我怎样才能做到这一点 ?

service android toast android-context layout-inflater

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

如何从android包中的资源ID获取Drawable对象?

我需要让Drawable对象显示在图像按钮上.有没有办法使用下面的代码(或类似的东西)从android.R.drawable.*包中获取对象?

例如,如果drawableId是android.R.drawable.ic_delete

mContext.getResources().getDrawable(drawableId)
Run Code Online (Sandbox Code Playgroud)

resources android drawable android-context

145
推荐指数
5
解决办法
14万
查看次数

在非活动类中使用getResources()

我试图在非活动类中使用getResources方法.如何获取对"resources"对象的引用,以便我可以访问存储在resources文件夹下的xml文件?

例:

XmlPullParser xpp = getResources().getXml(R.xml.samplexml);
Run Code Online (Sandbox Code Playgroud)

android android-context

117
推荐指数
5
解决办法
16万
查看次数

差异以及何时使用getApplication(),getApplicationContext(),getBaseContext()和someClass.this

我是新来的Android和我想明白之间的差别getApplication(),getApplicationContext()getBaseContext(),getContext()以及someClass.this特别是当使用这些方法在下面的代码行:

当我发起祝酒时,这些和我使用它们之间有什么区别?

Toast.makeText(LoginActivity.this, "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplication(), "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getBaseContext(), "LogIn successful", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

与意图相同:

Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
Intent intent = new Intent(MenuPagina., LoginActivity.class);
Intent intent = new Intent(getBaseContext(), LoginActivity.class);
Intent intent = new Intent(getApplication(), LoginActivity.class);
Run Code Online (Sandbox Code Playgroud)

android this toast android-intent android-context

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

如何在回收器视图适配器中获取上下文

我正在尝试使用picasso库来加载url到imageView,但我无法context正确使用picasso库.

public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {
    private List<Post> mDataset;



    // Provide a reference to the views for each data item
    // Complex data items may need more than one view per item, and
    // you provide access to all the views for a data item in a view holder
    public class ViewHolder extends RecyclerView.ViewHolder {
        // each data item is just a string in this case
        public TextView txtHeader;
        public ImageView pub_image;
        public ViewHolder(View v) {
            super(v); …
Run Code Online (Sandbox Code Playgroud)

java android android-context picasso android-recyclerview

116
推荐指数
9
解决办法
8万
查看次数