标签: android-context

为什么我不能在这里使用getBaseContext()?

我想尝试使用以下代码从我的设置中获取一些值:

import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.content.*;
public class TCPdumpHandler {

    public void getPreference() {

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        Boolean checkboxPreference = prefs.getBoolean("checkboxPref", true);
    }
}
Run Code Online (Sandbox Code Playgroud)

但错误是: The method getBaseContext() is undefined for the type TCPdumpHandler

你能告诉我原因吗?

android android-context

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

Android getWritableDatabase()抛出NullPointerException

我对getWritableDatabase()的调用遇到了问题.它返回一个NullPointerException.最奇怪的是,这个错误只是在我在Android清单中注释掉几行代码之后才开始发生的.现在项目又回到了原来的位置(我没有对这些部分进行评论,但它仍然会抛出NullPointerException).所以我检查了我的上下文并尝试了this.getBaseContext()和this.getApplicationContext().

使用getApplicationContext()将其发送到logcat:

08-12 09:24:20.042: E/AndroidRuntime(5572): FATAL EXCEPTION: main
08-12 09:24:20.042: E/AndroidRuntime(5572): java.lang.RuntimeException: Unable to instantiate service com.productivity.uptimeapp.NetService: java.lang.NullPointerException
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2395)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.app.ActivityThread.access$1600(ActivityThread.java:139)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1313)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.os.Looper.loop(Looper.java:137)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.app.ActivityThread.main(ActivityThread.java:5021)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at java.lang.reflect.Method.invokeNative(Native Method)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at java.lang.reflect.Method.invoke(Method.java:511)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at dalvik.system.NativeStart.main(Native Method)
08-12 09:24:20.042: E/AndroidRuntime(5572): Caused by: …
Run Code Online (Sandbox Code Playgroud)

service android nullpointerexception android-context getwritabledatabase

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

Android OnClickListener,意图和上下文

我是java和android的新手.在这里,我正在尝试设置我的onclicklistener,因此在单击时,它将显示另一个活动,即ActivityB.class.问题在于Intent i = new Intent(context, ActivityB.class);我不知道该放什么context.我试着用thiscontext,两者都是错误的.

能否请您解释何时以及为何使用this以及何时使用其他条款context

public class MainActivity extends Activity {

Button b;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b = (Button) findViewById(R.id.button1);

    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i = new Intent(context, ActivityB.class);
            startActivity(i);
            }
        }); 

}
Run Code Online (Sandbox Code Playgroud)

java android this android-context onclicklistener

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

getSupportFragmentManager()-对于上下文类型未定义

实例化Fragment类时如何解决以下问题

holder.infoView.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) {
       Fragment infoFragment = new ExampleFragment();
                    infoFragment.show(context.getSupportFragmentManager(), "settings");

     ....
Run Code Online (Sandbox Code Playgroud)

该代码所属的实际类(MySimpleArrayAdapter)- 扩展FragmentActivity- 但从扩展该类的另一个类中获取上下文(通过构造函数)。

完全一样,我不能使用诸如

 infoFragment.show(context.getSupportFragmentManager(), "settings");
Run Code Online (Sandbox Code Playgroud)

我收到错误:方法Context类型的getSupportFragmentManager()未定义。

是否有解决此问题的简单方法?

android android-context android-fragments

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

Android传递Context到处都是

我开发了一个Android应用程序(对我来说)它太丑了,我很确定我的方法是非常错误的.

我有一堆片段活动和很多类,如异步任务,业务规则等.特别是,我有一个名为PropertiesReader的类,我用它来读取属性文件.我在很多地方使用这个类,比如片段和业务规则.

public class PropertyReader {

    private Properties properties;

    public PropertyReader(Context context){
        super();
        try {
            properties = new Properties();
            properties.load(context.getResources().getAssets().open("badass.properties"));
        } catch (IOException e){
            Log.e("Error", "Error opening properties file", e);
        }
    }

    public String getValue(String key){
        return properties.getProperty(key);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我使用这个课程的每个地方,我做的事情如下:

 PropertyReader bla = new PropertyReader(this); //or new PropertyReader(context);
Run Code Online (Sandbox Code Playgroud)

我想知道什么是使用需要构造Context的类的最佳方法.在我看来,每个构造函数都有一个Context参数非常难看.

有任何想法吗?

预先感谢.

java android android-context

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

在Bundle中存储活动上下文

我正在使用静态工厂方法来创建片段.但我需要在片段中使用activity的上下文,因此我需要将该上下文包装到一个bundle中,并使用setArguements()方法将其附加到片段,以便我以后可以检索它.

但是如果我尝试通过执行bundle.putSerializable("tag",context)来存储上下文 - >它会抛出一个错误.谁能告诉我如何将活动上下文包装成一个包?

android bundle android-context android-fragments

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

调用startService的Context

我在Activity中使用了getApplication().bindService()或者只是bindService().是一个优于另一个.考虑到Activity具有生命周期,在什么情况下将使用Application上下文来启动/绑定到服务.

android android-context

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

可疑转发到AlarmManager以获取ALARM_SERVICE

报警

有没有人遇到这样的事情?

这是一个场景:我想构建一个单独的类,从中我可以通过静态方法停止并启动警报.从Activity类中,我想调用我计划构建的这个类的方法,但重点是,当我传递"context"时,我甚至计划将Activity上下文传递给静态方法在我的AlarmManager对象中,Android Studio向我传递了以下信息,这些信息打印在上面的屏幕上,我不得不承认,我不能说明这一点.

我错过了什么?我一直在寻找谷歌,但似乎这种情况不是那么常见.

IMPORTAT:关于上面的图片,我试图只使用上下文(下面的代码),而不使用getApplicationContext(),但它没有运行...

这是代码:

package com.mydomain.myapp;

import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.SystemClock;



public class AlarmManager {

    private static AlarmManager  alarm;
    private static PendingIntent pIntent;


    //start alarm
    public static void setAlarm(Context context, int alarmId, long alarmTime) {

        Intent startAlarmIntent;
        long beginAt  = SystemClock.elapsedRealtime() + 60 * 1000;
        long interval = 300000; // 5 minutes

        alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        startAlarmIntent = new Intent(context, AlarmBroadcastReceiver.class);
        pIntent = PendingIntent.getBroadcast(context, alarmId, startAlarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        alarm.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, beginAt, interval, pIntent); …
Run Code Online (Sandbox Code Playgroud)

java android alarmmanager android-context

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

为什么我们需要将Context传递给View?

每个Activity都是一个Context.每个View都需要一个Context.是否正确地说当我们将Context传递给View时,我们基本上是通过传递Context来向某个Activity添加一个View?

android android-context

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

获得对非活动类中的getSupportFragmentManager的访问权限

我希望有人能帮帮忙。我有一个非活动类,需要在其中使用静态方法访问fragmentmanager ,不幸的是我不知道如何正确传递上下文。

任何帮助表示赞赏,

非活动类别:

public class testClass {
..
public synchronized static void checkNewdata(List<data>input, Context context) {
..
       FragmentManager ft = ((FragmentActivity)???).getSupportFragmentManager();
                DialogFragment newFragment = MyNotification.newInstance();
                newFragment.setCancelable(false);
                newFragment.show(ft, "mydialog");
..
   }
}
Run Code Online (Sandbox Code Playgroud)

还从非活动类中调用方法checkNewdata,在该类中我尝试传递上下文,但这不起作用:

public class SearchResponse extends SuccessResponse {

private Context mcontext;

public SearchResponse(Context context){
    mcontext = context;
}
..
@Override
    public void save() {
..
    testClass.checkNewdata(mainData, context);
..
   }
}
Run Code Online (Sandbox Code Playgroud)

android android-context fragmentmanager

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