BASEAdapter

package com.skyfront.forestdz.ada;

import java.util.Date;

import org.json.JSONArray;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.skyfront.forestwjj.R;
import com.skyfront.forestdz.mapActivity.KqMapActivity;
import com.skyfront.forestdz.utils.DateUtils;

public class KqAdapter  extends BaseAdapter{

    private JSONArray data;
    private LayoutInflater inflate;
    private Context context ;
    public KqAdapter(Context context,JSONArray data){
        this.data = data;
        inflate = LayoutInflater.from(context);
        this.context = context ;

    }
    @Override
    public int getCount() {

            return data.length();


    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }
    public LinearLayout getL(String title,String date){
        View view = LayoutInflater.from(context).inflate(R.layout.activity_kq_item_line, null);
        LinearLayout layout = (LinearLayout)view.findViewById(R.id.qd_item_layout);
        TextView textView1 = (TextView)layout.getChildAt(0);
        TextView textView2 = (TextView)layout.getChildAt(1);
        textView1.setText(title);
        textView2.setText(date);
        return layout;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;

        //if (KqActivity.startValue < KqActivity.endValue) {

        if(convertView == null){
            holder = new ViewHolder();
            convertView = inflate.inflate(R.layout.activity_qd_item, null);
//          holder.qd_item = (TextView)convertView.findViewById(R.id.qd_time);
//          holder.qt_item = (TextView)convertView.findViewById(R.id.qt_time);
            holder.kq_time = (TextView)convertView.findViewById(R.id.kqtime);
            holder.kq_week = (TextView)convertView.findViewById(R.id.kqweek);
            holder.qd_item_l = (LinearLayout)convertView.findViewById(R.id.qd_item_about);

            holder.kqDetails = (TextView)convertView.findViewById(R.id.kqDetails);

        }else {
            holder = (ViewHolder)convertView.getTag();
        }
        JSONArray js = data.optJSONObject(position).optJSONArray("kq");
        if(js!= null && js.length() >0){
            String strDetails="";
            for(int i = 0 ; i < js.length() ; i ++){
                String time = js.optJSONObject(i).optString("time");
                Date time1 = DateUtils.stringToDate(time, DateUtils.formatter);
                String strtime1 = DateUtils.dateToString(time1, DateUtils.formatter3);

                String title = "";
                if(!"1".equals(js.optJSONObject(i).optString("type")))
                    title = "第"+js.optJSONObject(i).optString("state")+"次考勤(签到)";
                else
                    title = "第"+js.optJSONObject(i).optString("state")+"次考勤(签退)";



                //holder.qd_item_l.addView(getL(title, strtime1));

                if(i+1==js.length()){
                    strDetails+=strtime1+"    "+title+"\r\n";
                }else{
                    strDetails+=strtime1+"    "+title+"\r\n\r\n";
                }

            }
            holder.kqDetails.setText(strDetails);
        }else {
            //holder.qd_item_l.addView(getL(data.optJSONObject(position).optString("time"),"无考勤"));
            holder.kqDetails.setText(data.optJSONObject(position).optString("time")+"    "+"无考勤"+"\r\n");
        }
        holder.kq_week.setText(data.optJSONObject(position).optString("time"));
        holder.kq_time.setText(data.optJSONObject(position).optString("week"));
//      holder.kq_time.setText(data.get(position).get("time"));
//      holder.kq_week.setText(data.get(position).get("week"));
        convertView.setTag(holder);

        return convertView;
    }

    class ViewHolder {  
//      public TextView qd_item;
//      public TextView qt_item ;
        public LinearLayout qd_item_l;
        public TextView kq_time;
        public TextView kq_week ;

        public TextView kqDetails;
    }

    public void onclickView(int position){

        try {
                String s =data.toString();
                JSONArray js = data.optJSONObject(position).optJSONArray("kq"); 

                Intent intent=new Intent();
                Bundle bundle=new Bundle();             
                bundle.putString("data", s);
                bundle.putInt("wz",position );
                intent.putExtras(bundle);

                if(!js.toString().equals("[]")&&!s.equals(null))        
                {intent.setClass(context,KqMapActivity.class);
                context.startActivity(intent);
                }
                else
                {           
                    Toast.makeText(context,"暂无考勤",Toast.LENGTH_LONG).show();
                }


        } catch (Exception e) {

        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BaseAdapter是Android开发中的一个抽象类,用于创建自定义适配器。适配器是连接数据和UI界面的桥梁,它负责将数据源中的数据逐个绑定到UI组件上,以展示给用户。BaseAdapter提供了一些方法,可以帮助我们实现自定义适配器。 以下是一个使用BaseAdapter创建自定义适配器的示例代码: ```java public class MyAdapter extends BaseAdapter { private Context mContext; private List<String> mData; public MyAdapter(Context context, List<String> data) { mContext = context; mData = data; } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return mData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.item_layout, parent, false); holder = new ViewHolder(); holder.textView = convertView.findViewById(R.id.text_view); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } String item = mData.get(position); holder.textView.setText(item); return convertView; } private static class ViewHolder { TextView textView; } } ``` 在这个示例中,我们创建了一个名为MyAdapter的自定义适配器,继承自BaseAdapter。在构造方法中,我们传入了上下文和数据源。然后,我们实现了BaseAdapter的四个方法:getCount()、getItem()、getItemId()和getView()。 - getCount()方法返回数据源的大小。 - getItem()方法返回指定位置的数据项。 - getItemId()方法返回指定位置的数据项的ID。 - getView()方法用于创建每个列表项的视图,并将数据绑定到视图上。 在getView()方法中,我们使用了ViewHolder模式来优化列表项的创建和复用。通过convertView参数判断是否需要创建新的视图,如果convertView为null,则创建新的视图,并将其缓存到ViewHolder中;如果convertView不为null,则直接从缓存中获取ViewHolder。然后,我们从数据源中获取对应位置的数据项,并将其绑定到视图上。 这样,我们就可以使用自定义的适配器MyAdapter来展示数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值