2014-12-09 2 views
0

Привет, у меня есть ошибка. Конструктор Intent (новый View.OnClickListener() {}, Class) не определен, я создан Util класс в этом классе создает всплывающий макет в этом лог-экране экрана макета, пароль chanage, например, созданный текстовый просмотр, что текстовый вид onClick я должен вызвать другое действие. на этот раз показывая эту ошибку.Конструктор Intent (новый View.OnClickListener() {}, класс <ChangePasswordActivity>) не определен

public class Util { 


public static void initPopWindow(Activity a, Button button) 
{ 
    final Context context = a; 
    // popupWindow 
    View contentView = LayoutInflater.from(a).inflate(R.layout.my_list, null); 
// popupWindow 
    contentView.setBackgroundColor(Color.LTGRAY);   
    popupWindow = new PopupWindow(contentView, 340, 249, true); 
    contentView.setFocusableInTouchMode(true);  
    popupWindow.setBackgroundDrawable(new BitmapDrawable()); 
    popupWindow.showAtLocation(button, Gravity.TOP|Gravity.RIGHT, 2, 127); 



change_passwrod_activity.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 


      startActivity((new Intent(this, ChangePasswordActivity.class))); 

     } 
    }); 
} 

} 




main Activity call 
public void onSetting(View v) { 
Util.initPopWindow(this, menubutton) 
} 
+0

Изменить этот startActivity ((новый Intent (это, ChangePasswordActivity.class))) // Ваше это здесь не является допустимым контекст. к startActivity ((новый Intent (контекст, ChangePasswordActivity.class))) – Raghunandan

+0

его работает отлично ... спасибо за ваши комментарии ... –

+0

Это название заставило меня смеяться. –

ответ

0

Обычно это ключевое слово указывает на текущий класс, вот ваш текущий класс Util.java.

Use activity **context** instead of **this**, because Intent need reference of activity class. It will not accept any other class reference.

startActivity((new Intent(context, ChangePasswordActivity.class))); 
+0

Я заменяю свой код как startActivity ((новый Intent (context, ChangePasswordActivity.class))); Но опять эта ошибка наступает. Метод startActivity (Intent) не определен для типа new View.OnClickListener() {} –

+0

'context.startActivity ((новый Intent (контекст, ChangePasswordActivity.class));' это работает правильно. –

+0

Да, startActivity() - это метод активности. Для его вызова нужен контекст. –

0
context.startActivity((new Intent(context, ChangePasswordActivity.class))); 
+0

Я заменяю свой код как startActivity ((новый Intent (контекст, ChangePasswordActivity.class))); Но опять эта ошибка наступает. Метод startActivity (Intent) не определен для нового типа. View.OnClickListener() {} - –

+0

делает вашу деятельность «а» окончательной и использует ее там. startActivity ((новое намерение (a, ChangePasswordActivity.class))); –

+0

"context.startActivity ((новый Intent (контекст, ChangePasswordActivity.class)));" это отлично работает .. –

0
change_passwrod_activity.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     context.startActivity(new Intent(context, ChangePasswordActivity.class)); 
    } 

}); 

startActivity() представляет собой метод в контексте, а не в вашем OnClickListener или Util класса.