Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android Studio上将onClickListner添加到ArrayAdapter_Java_Android - Fatal编程技术网

Java 如何在Android Studio上将onClickListner添加到ArrayAdapter

Java 如何在Android Studio上将onClickListner添加到ArrayAdapter,java,android,Java,Android,我试图在我的代码中加入intent和onClickListner,但我找不到任何解决方案 在MainActivity.java中 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ArrayList<Details> detail =

我试图在我的代码中加入intent和onClickListner,但我找不到任何解决方案

在MainActivity.java中

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
final ArrayList<Details> detail = new ArrayList<>();

        detail.add(new Details(R.string.list_1, price_1,getResources().getColor(R.color.color_category_1)));
       //more detail           
        DetailsAdapter adapter = new DetailsAdapter(this, detail);
        ListView listView = (ListView) findViewById(R.id.list);
        listView.setAdapter(adapter);
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终ArrayList detail=新ArrayList();
detail.add(新的细节(R.string.list_1,price_1,getResources().getColor(R.color.color_category_1));
//更多细节
DetailsAdapter adapter=新的DetailsAdapter(这个,细节);
ListView ListView=(ListView)findViewById(R.id.list);
setAdapter(适配器);
}
在DetailAdapter.java中

public class DetailsAdapter extends ArrayAdapter<Details> {

    private DetailsAdapter(Activity context, ArrayList<Details> detail) {
        super(context, 0, detail);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View listItemView = convertView;
        if (listItemView == null) {
            listItemView = LayoutInflater.from(getContext()).inflate(R.layout.category_list_main, parent, false);
        }

        Details currentDetails = getItem(position);

        TextView detailsTextView = (TextView) listItemView.findViewById(R.id.detailsName);
        detailsTextView.setText(currentDetails.getDetailName());

        //other code for displaying the text
        colourCategory.setBackgroundColor(currentDetails.getColorCategory());
        return listItemView;
    }
}
公共类DetailsAdapter扩展了ArrayAdapter{
私有详细信息适配器(活动上下文、ArrayList详细信息){
超级(上下文,0,细节);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
View listItemView=convertView;
如果(listItemView==null){
listItemView=LayoutInflater.from(getContext()).flate(R.layout.category\u list\u main,parent,false);
}
详细信息currentDetails=getItem(位置);
TextView detailsTextView=(TextView)listItemView.findViewById(R.id.detailsName);
detailsTextView.setText(currentDetails.getDetailName());
//用于显示文本的其他代码
colorCategory.setBackgroundColor(currentDetails.getColorCategory());
返回listItemView;
}
}

您可以像这样定义您的
listView.setOnItemClickListener
以转到不同的活动来单击不同的元素

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

    final ArrayList<Details> detail = new ArrayList<>();

    detail.add(new Details(R.string.list_1, price_1,getResources().getColor(R.color.color_category_1)));

    // More detail           
    DetailsAdapter adapter = new DetailsAdapter(this, detail);
    ListView listView = (ListView) findViewById(R.id.list);
    listView.setAdapter(adapter);

    // Click event
    listView.setOnItemClickListener(new setOnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            // Do what you need...
        }
    });
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终ArrayList detail=新ArrayList();
detail.add(新的细节(R.string.list_1,price_1,getResources().getColor(R.color.color_category_1));
//更多细节
DetailsAdapter adapter=新的DetailsAdapter(这个,细节);
ListView ListView=(ListView)findViewById(R.id.list);
setAdapter(适配器);
//点击事件
setOnItemClickListener(新的setOnItemClickListener(){
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
//做你需要的。。。
}
});
}
listItemView.setOnClickListener(),