如何清除错误:创建方法“getApplicationContext()”和“runOnUiThread(可运行)'时,伸出片段 [英] How to remove error : create method 'getApplicationContext()' and 'runOnUiThread(Runnable)' when extends Fragment
问题描述
当我使用 getApplicationContext()
那个时候日食给我的错误创建方法getApplicationContext()
。请让我知道如何删除此错误。我也尝试使用 ClassName.this 这样的时间误差更改方法startListening(上下文),以startListening(主)
此外,当我使用这样的: measurement_index = AppSettings.getMeasureUnit(本);
然后像错误:更改方法getMeasureUnit(上下文),以getMeasureUnit(主)
所以,请让我知道如何解决类似的错误:
-
create方法getApplicationContext()
-
更改方法getMeasureUnit(上下文),以getMeasureUnit(主)
检查我的code。
Main.class
公共类主要扩展片段实现GPSCallback {
.......
公共静态片段的newInstance(INT位置){
主F =新的Main();
捆绑的args =新包();
...
}
@覆盖
公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
捆绑savedInstanceState){
最后的ViewGroup根=(ViewGroup中)inflater.inflate(R.layout.main,NULL);
/ *意图=新的意图(Main.this,MainDisplay.class);
// ------------>这里给出的错误,如:删除参数匹配的Intent();
startActivity(在); * /
tv_display_Speed =(TextView中)root.findViewById(R.id.speed_display);
gpsManager =新GPSManager();
gpsManager.startListening(getApplicationContext());
// ------------> ECLIPSE给我错误创建方法getApplicationContext()
gpsManager.setGPSCallback(本);
//(TextView)root.findViewById(R.id.speed_display);
measurement_index = AppSettings.getMeasureUnit(本);
// ------------>在这里,给我这样的错误:更改方法getMeasureUnit(上下文),以getMeasureUnit(主)
btnstart =(按钮)root.findViewById(R.id.button_start);
btnstart.setOnClickListener(新OnClickListener(){
@覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
}
});
返回根;
}
startListening 方式:
公共无效startListening(最终上下文的背景下)
{
....
}
getMeasureUnit 方式:
公共静态INT公共静态INT getMeasureUnit(上下文的背景下){
返回调用getInt(背景下,AppSettings.UNIT_STRING);
}
编辑:
我已经添加了 ONSTART()
方法到上面的类扩展片段。
那个时候,在 runOnUiThread(updateTask);
的Eclipse给我这样的错误: create方法runOnUiThread(Runnable接口)
。请让我知道我能做到这一点。
@覆盖
公共无效的OnStart(){
super.onStart();
定时器=新的定时器(DigitalClock);
台历挂历= Calendar.getInstance();
//获取当前时间
最终的可运行updateTask =新的Runnable(){
公共无效的run(){
txt_display_clock.setText(getCurrentTimeString()); //显示当前
//在一天中的时间
}
};
//更新UI
INT毫秒= 999 - calendar.get(Calendar.MILLISECOND);
timer.scheduleAtFixedRate(新的TimerTask(){
@覆盖
公共无效的run(){
runOnUiThread(updateTask); //< ----------------这里
}
},毫秒,1000);
}
在一个片段中,可以使用 getActivity()。getApplicationContext()
代替。
对于AppSettings.getMeasureUnit错误,如果getMeasureUnit方法需要另外一种情况下,你通常可以使用 getActivity()。getApplicationContext()
。
When I am using the getApplicationContext()
that time eclipse give me error create method 'getApplicationContext()'
. Please let me know How to remove this error. I am try also using ClassName.this that time error like change method startListening(Context) to startListening(Main)
Also when I use like : measurement_index = AppSettings.getMeasureUnit(this);
then Error like :change method getMeasureUnit(Context) to getMeasureUnit(Main)
So please let me know how can solve error like:
create method 'getApplicationContext()'
change method getMeasureUnit(Context) to getMeasureUnit(Main)
Check my code.
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 method:
public void startListening(final Context context)
{
....
}
getMeasureUnit method:
public static int public static int getMeasureUnit(Context context){
return getInt(context,AppSettings.UNIT_STRING);
}
EDIT :
I have Added the onStart()
method into above class that extends fragment.
That time at runOnUiThread(updateTask);
Eclipse give me error like : create method runOnUiThread(Runnable)
.Please let me know how can I achieve this.
@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);
}
In a Fragment, you can use getActivity().getApplicationContext()
instead.
As for the AppSettings.getMeasureUnit error, if the getMeasureUnit method is expecting a context you can usually use getActivity().getApplicationContext()
.
这篇关于如何清除错误:创建方法“getApplicationContext()”和“runOnUiThread(可运行)'时,伸出片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!