2

getApplicationContext()その時の日食を使用していると、エラーが発生しますcreate method 'getApplicationContext()'。このエラーを取り除く方法を教えてください。私はClassName.thisも使用しようとしています。change method startListening(Context) to startListening(Main)

また、 like : を使用するとmeasurement_index = AppSettings.getMeasureUnit(this); 、 Error like :change method getMeasureUnit(Context) to getMeasureUnit(Main)

したがって、次のようなエラーを解決する方法を教えてください。

  1. メソッド「getApplicationContext()」を作成します

  2. メソッド getMeasureUnit(Context) を getMeasureUnit(Main) に変更

私のコードをチェックしてください。

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;
}

startListeningメソッド:

public void startListening(final Context context)
{
     ....
}

getMeasureUnitメソッド:

public static int public static int getMeasureUnit(Context context){
    return getInt(context,AppSettings.UNIT_STRING);
} 

編集 :

onStart()フラグメントを拡張する上記のクラスにメソッドを追加しました。その時、runOnUiThread(updateTask);Eclipse で次のようなエラーが表示されcreate method 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);
}
4

1 に答える 1

5

フラグメントでは、代わりに使用できますgetActivity().getApplicationContext()

AppSettings.getMeasureUnit エラーに関しては、getMeasureUnit メソッドがコンテキストを予期している場合、通常は を使用できますgetActivity().getApplicationContext()

于 2012-11-23T05:27:31.633 に答える