gpt4 book ai didi

java - 覆盖在非 Activity 类中不起作用

转载 作者:行者123 更新时间:2023-12-01 18:17:22 25 4
gpt4 key购买 nike

我不知道,但为什么它显示从 onCreateContextMenu 中删除 @Override 注释?任何人都可以告诉我为什么会这样?

我已经检查过,我的编译器设置为 java 1.6。我的 jre 设置为 1.6。

contactPHP.java

    public class contactPHP extends AsyncTask<Object, Object, JSONArray>{
final contactActivity main;
private ListView listView;
public contactPHP(contactActivity indv) {
this.main = indv;
}
@Override
protected void onPreExecute() {
super.onPreExecute();

listView = (ListView)main.findViewById(R.id.listnum);
adapter = new contactAdapter(main, imlist);
listView.setAdapter(adapter);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
main.onCreateContextMenu(menu, v, menuInfo);

CNList obj = (CNList)v.getTag();
int subs = obj.getsubstance();

menu.setHeaderTitle(obj.getname());
menu.add(0, v.getId(), 0, "Add");
menu.add(0, v.getId(), 0, "Remove");
}
}

contactActivity.java

public class contactActivity extends Activity{



@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.contact);
getLayoutInflater().inflate(R.layout.contact, null);
Intent intent = getIntent();
new contactPHP(contactActivity.this).execute();
//getNumber(contactActivity.this.getContentResolver());
}



}

更新 1

在 Activity 中添加了 onCreateContextMenu 并将 onPostExecute() 返回给 Activity,但出现错误!

contactPHP.java 已编辑

protected void onPostExecute(JSONArray json) {  
main.contactPhpResponse(....);
}

contactActivity.java 已编辑

  public void contactPhpResponse(ListView listView,JSONArray json){
this.registerForContextMenu(listView);
//some codes
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
this.onCreateContextMenu(menu, v, menuInfo);

CNList obj = (CNList)v.getTag();
int subs = obj.getsubstance();

menu.setHeaderTitle(obj.getname());
menu.add(0, v.getId(), 0, "Add");
menu.add(0, v.getId(), 0, "Remove");
}

LogCAT

03-04 16:36:48.883: E/AndroidRuntime(5018): FATAL EXCEPTION: main
03-04 16:36:48.883: E/AndroidRuntime(5018): Process: com.example.soc, PID: 5018
03-04 16:36:48.883: E/AndroidRuntime(5018): java.lang.StackOverflowError
03-04 16:36:48.883: E/AndroidRuntime(5018): at com.example.soc.contactActivity.onCreateContextMenu(contactActivity.java:92)
03-04 16:36:48.883: E/AndroidRuntime(5018): at com.example.soc.contactActivity.onCreateContextMenu(contactActivity.java:92)
03-04 16:36:48.883: E/AndroidRuntime(5018): at com.example.soc.contactActivity.onCreateContextMenu(contactActivity.java:92)
03-04 16:36:48.883: E/AndroidRuntime(5018): at com.example.soc.contactActivity.onCreateContextMenu(contactActivity.java:92)

这意味着这一行this.onCreateContextMenu(menu, v, menuInfo);

最佳答案

这是因为 onCreateContextMenu 不是 AsyncTask 的方法,因此您无法覆盖它。移入您的 Activity 类。另外,请尊重 java 命名约定。类名始终以大写字母开头。

关于java - 覆盖在非 Activity 类中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28840262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com