简体   繁体   English

来自Android应用的错误setOnClickListener

[英]Error setOnClickListener from an android app

Hey guys I've been having problems with a code I'm using for practice. 大家好,我在练习中使用的代码遇到了问题。 The thing is that it works for the guy giving the tutorial, but it doesn't work for me. 事实是,它对提供教程的人有效,但对我不起作用。 My question is how do I fix it? 我的问题是如何解决?

 package bt.sismo;


import android.os.Bundle;
import android.view.View;
import android.widget.Toast;//
import android.widget.ListView;//
import android.widget.ListAdapter;//
import android.widget.ArrayAdapter;//
import android.widget.AdapterView;//
import android.app.Activity;//

public class MainActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String[] foods = {"Bacon", "Ham", "Tuna", "Candy", "Meatball", "Potato"};
        ListAdapter bryansAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, foods);
        ListView bryansListView = (ListView) findViewById(R.id.bryansListView);
        bryansListView.setAdapter(bryansAdapter);

        bryansListView.setOnClickListener(
                new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        String food = String.valueOf(parent.getItemAtPosition(position));
                        Toast.makeText(MainActivity.this, food, Toast.LENGTH_LONG).show();
                    }
                }

        );
    }
}

It later gives me this error in the logcat 稍后它在logcat中给我这个错误

    Error:(26, 23) error: no suitable method found for setOnClickListener(<anonymous OnItemClickListener>)
    method View.setOnClickListener(OnClickListener) is not applicable
    (argument mismatch; <anonymous OnItemClickListener> cannot be converted to OnClickListener)
    method AdapterView.setOnClickListener(OnClickListener) is not applicable
    (argument mismatch; <anonymous OnItemClickListener> cannot be converted to OnClickListener)

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

You're calling the setOnClickListener and passing in an OnItemClickListener . 您正在调用setOnClickListener并传递一个OnItemClickListener

Change this: 更改此:

bryansListView.setOnClickListener(...)

To this: 对此:

bryansListView.setOnItemClickListener(...)

        bryansListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {

            String food = String.valueOf(parent.getItemAtPosition(position));
                    Toast.makeText(MainActivity.this, food, Toast.LENGTH_LONG).show();

        }
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM