Android 如何删除错误:创建方法';getApplicationContext()和#x27;和';runOnUiThread(可运行)和#x27;当扩展片段时

Android 如何删除错误:创建方法';getApplicationContext()和#x27;和';runOnUiThread(可运行)和#x27;当扩展片段时,android,fragment,android-context,Android,Fragment,Android Context,当我使用getApplicationContext()时,eclipse给了我错误创建方法“getApplicationContext()”。请让我知道如何删除此错误。我还尝试使用ClassName。这是一个类似将方法startListening(上下文)更改为startListening(Main) 同样当我使用like:measurement\u index=AppSettings.getMeasureUnit(this) 然后出现如下错误:将方法getMeasureUnit(上下文)更改为

当我使用
getApplicationContext()
时,eclipse给了我错误
创建方法“getApplicationContext()”
。请让我知道如何删除此错误。我还尝试使用ClassName。这是一个类似
将方法startListening(上下文)更改为startListening(Main)

同样当我使用like:
measurement\u index=AppSettings.getMeasureUnit(this)
然后出现如下错误:
将方法getMeasureUnit(上下文)更改为getMeasureUnit(主)

因此,请让我知道如何解决以下错误:

  • 创建方法“getApplicationContext()”

  • 将方法getMeasureUnit(上下文)更改为getMeasureUnit(主)

  • 检查我的代码

    Main.class

    public class Main extends Fragment implements GPSCallback{
    
    ....... 
    
    public static Fragment newInstance(int position) {
        Main f = new Main();
        Bundle args = new Bundle();
    
         ...
    
    }
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
    
        final ViewGroup root = (ViewGroup) inflater.inflate(R.layout.main, null);
    
        /*Intent in = new Intent(Main.this,MainDisplay.class);
                  // ------------> Here give error like : Remove arguments match to Intent();
        startActivity(in);*/
    
        tv_display_Speed = (TextView) root.findViewById(R.id.speed_display);
    
         gpsManager = new GPSManager();
    
            gpsManager.startListening(getApplicationContext());
                       //------------>  Eclipse give me error create method 'getApplicationContext()'
    
            gpsManager.setGPSCallback(this);
    
            //(TextView)root.findViewById(R.id.speed_display);
    
            measurement_index = AppSettings.getMeasureUnit(this);
                       //------------> Here Give me error like : change method getMeasureUnit(Context) to  getMeasureUnit(Main) 
    
    
        btnstart = (Button) root.findViewById(R.id.button_start);
        btnstart.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
    
    
            }
        });
    
        return root;
    }
    
    听音法方法:

    public void startListening(final Context context)
    {
         ....
    }
    
    public static int public static int getMeasureUnit(Context context){
        return getInt(context,AppSettings.UNIT_STRING);
    } 
    
    getMeasureUnit方法:

    public void startListening(final Context context)
    {
         ....
    }
    
    public static int public static int getMeasureUnit(Context context){
        return getInt(context,AppSettings.UNIT_STRING);
    } 
    
    编辑:

    我已将
    onStart()
    方法添加到上述扩展片段的类中。 在
    runOnUiThread(updateTask)的时间Eclipse给我的错误是:
    创建方法runOnUiThread(Runnable)
    。请告诉我如何实现这一点

    @Override
    public void onStart() {
        super.onStart();
        timer = new Timer("DigitalClock");
        Calendar calendar = Calendar.getInstance();
    
        // Get the Current Time
        final Runnable updateTask = new Runnable() {
            public void run() {
                txt_display_clock.setText(getCurrentTimeString()); // shows the current
                                                            // time of the day
    
            }
        };
    
        // update the UI
        int msec = 999 - calendar.get(Calendar.MILLISECOND);
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(updateTask); // <---------------- HERE
            }
        }, msec, 1000);
    }
    
    @覆盖
    public void onStart(){
    super.onStart();
    定时器=新定时器(“数字时钟”);
    日历=Calendar.getInstance();
    //获取当前时间
    final Runnable updateTask=new Runnable(){
    公开募捐{
    txt_display_clock.setText(getCurrentTimeString());//显示当前
    //一天中的时间
    }
    };
    //更新用户界面
    int msec=999-calendar.get(calendar.毫秒);
    timer.scheduleAtFixedRate(新TimerTask(){
    @凌驾
    公开募捐{
    
    runOnUiThread(updateTask);//在片段中,可以使用
    getActivity().getApplicationContext()


    至于AppSettings.getMeasureUnit错误,如果getMeasureUnit方法需要上下文,则通常可以使用
    getActivity().getApplicationContext()

    getActivity().getApplicationContext())
    可以。@hotveryspicy我想要与之完全相反的,意思是从
    片段到活动的意图
    可能吗?@hotveryspicy当我添加
    onstart()
    方法时,然后使用
    runOnUiThread(updateTask);
    那个时间错误,比如:create method runOnUiThread(Runnable);请检查我更新的代码。并给我解决方案。谢谢,已经完成了。第二个错误是什么
    measurement\u index=AppSettings.getMeasureUnit(this);
    。我可以使用
    getActivity().getApplicationContext()
    来代替
    这个
    吗?当我添加
    onstart()
    方法时,然后使用
    rununuithread时(updateTask);
    那个时候的错误,比如:创建方法runOnUiThread(Runnable);请检查我更新的代码。并给我解决方案。