2015-06-15 2 views
-2

Я хочу назвать onClickListener(), но есть проблемаAndroid: статический справочный/нестатический метод при использовании onClickListener();

Cannot make a static reference to the non-static method setOnClickListener(View.OnClickListener) from the type View 

Мой соответствующий код:

Intent intent = getIntent(); 
     final String editTextStr = intent.getExtras().getString("url"); 
     ImageView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        Uri uri = Uri.parse(putExtra(editTextStr)); 

       Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
      startActivity(intent); 
       } 

      }); 

пожалуйста, помогите мне, пожалуйста

+0

какая польза, если вы звоните setOnClickListener на ImageView? –

+0

Это поможет увидеть соответствующие инструкции 'import', посмотреть, с какими классами вы ссылаетесь, или использовать полные имена классов. Более того, ссылки на документацию по API API для соответствующих классов и цитирование соответствующих определений помогли бы людям, свободно владеющим Java, быстро найти и объяснить, почему вы получаете эту ошибку компиляции вместо того, чтобы раздражаться ожиданием, что им нужно будет инвестировать свои драгоценные время поиска ссылок для вас. :-) – FooF

ответ

0

ImageView класс. Вызывая метод setOnClickListener в классе, вы делаете статическую ссылку на этот метод класса. Но метод setOnClickListener не определяется как статический.

Вам необходимо установить прослушиватель кликов на объект этого класса. Например,

ImageView myImageView = (ImageView) findViewById(R.id.myImageView); 
myImageView.setOnClickListener(...); 
0

Вы должны позвонить onClickListener в конкретный экземпляр своей деятельности.

ImageView image = (ImageView) findViewById(R.id.yourref); 
image.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Uri uri = Uri.parse(putExtra(editTextStr)); 

       Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
       startActivity(intent); 
      } 

     }); 
1

ImageView - класс. Вызывая метод setOnClickListener в имени класса, вы вызываете вызов Static Method, но на самом деле это не статический метод.

final ImageView imageView = (ImageView)findViewById(R.id.<ID in you Layout XML file>); imageView.setOnClickListener(....);

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