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);请检查我更新的代码。并给我解决方案。