2013-07-16 2 views
0

Я студент, изучающий андроид.
Я просто тестировал код, совершенно отличный с моим учебником.
но .... произошло много ошибок ....
я не знаю, почему они появляются ...
как разрешить ContextMenu.ContextMenuInfo нельзя разрешить для типа?

activity_context_menu.xml:

я не знаю о 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 не может быть разрешен к типу
Метод добавить (интермедиат, Int, Int, String) не определено для типа ContextMenu


как я могу удалить ошибки?

ответ

1

Я думаю, что вы делаете ошибку, создавая класс под названием: общественный класс ContextMenu расширяет активность

Потому что вы используете один и тот же имя существующего класса: android.view.ContextMenu

Компилятор не может отличить вашего класса и от существующего.

Возможное решение: попробуйте переименовать (используя, например, рефакторинг) свой класс в нечто вроде MyContextMenu.

+0

Я прочитал этот ответ, потому что поздно ..... извините ..... и думаю, что вы :) –

Смежные вопросы