我是学生学习机器人 我只是测试了一些与我的教科书完全相同的代码 但是......发生了很多错误...... 我不知道他们为什么出现......
activity_context_menu.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
/>
<EditText android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="EditText"
/>
<andexam.ver4_1.c09_munu.MyImage
android:id="@+id/myimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
/>
我不知道andexam ....
我只是在看书时打字
但我猜错误不包括该部分
package com.example.contextmenu;
import android.app.*;
import android.content.*;
import android.graphics.*;
import android.os.*;
import android.util.*;
import android.view.*;
import android.widget.*;
public class ContextMenu extends Activity {
Button mBtn;
EditText mEdit;
MyImage mImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_context_menu);
/*
mBtn=(Button)findViewById(R.id.edittext);
registerForContextMenu(mEdit);
*/
registerForContextMenu(mBtn=(Button)findViewById(R.id.button));
registerForContextMenu(mEdit=(EditText)findViewById(R.id.edittext));
mImage=(MyImage)findViewById(R.id.myimage);
registerForContextMenu(mImage);
}
public void onCreateContextMenu (ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if(v==mBtn){
menu.setTitle("Button Menu");
menu.add(0,1,0,"red");
menu.add(0,2,0,"green");
menu.add(0,3,0,"blue");
}
if(v==mEdit){
menu.add(0,4,0,"translation");
menu.add(0,5,0,"writing");
}
}
public boolean onContextItemSelected(MenuItem item){
switch(item.getItemId()){
case 1:
mBtn.setTextColor(Color.RED);
return true;
case 2:
mBtn.setTextColor(Color.GREEN);
return true;
case 3:
mBtn.setTextColor(Color.BLUE);
return true;
case 4:
Toast.makeText(this,"translated",Toast.LENGTH_SHORT).show();
return true;
case 5:
Toast.makeText(this,"wrote",Toast.LENGTH_SHORT).show();
return true;
case 100:
Toast.makeText(this,"rotated",Toast.LENGTH_SHORT).show();
return true;
case 101:
Toast.makeText(this,"resized",Toast.LENGTH_SHORT).show();
return true;
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.context_menu, menu);
return true;
}
}
class MyImage extends ImageView {
public MyImage(Context context){
super(context);
}
public MyImage(Context context, AttributeSet attrs){
super(context, attrs);
}
public void onCreateContextMenu(ContextMenu menu){
super.onCreateContextMenu(menu);
menu.setTitle("MyImage Menu");
menu.add(0,100,0,"image rotate");
menu.add(0,101,0,"change image size");
}
}
ContextMenu.ContextMenuInfo 无法解析为类型
对于ContextMenu类型,方法 add(int,int,int,String)未定义
我该如何删除错误?
答案 0 :(得分:1)
我认为你在创建一个叫做的类时犯了一个错误: 公共类 ContextMenu 扩展了活动
因为您使用的是现有类的相同名称: android.view.ContextMenu
编译器无法区分您的类和现有的。
可能的解决方案:尝试将您的类重命名(例如使用重构)类似MyContextMenu。