2018年12月14日 星期五

[ Android Studio ] 連線MySQL新增修改刪除改成RecyclerView的作法



RecyclerView主要為有欄有列的顯示方式。

自訂元素:例元素為t_id

class 自訂元素的名稱 {
    private String t_id;

    public Re1_list(String t_id) {
        this.t_id = t_id;
    }



    public String getT_id() {
        return t_id;
    }

    public void setT_id(String t_id) {
        this.t_id = t_id;
    }

}



取得資料的方法:

 try{
        String r = JSON資料
        JSONArray jsonArray = new JSONArray(r);
        ArrayList<自訂元素> items=new ArrayList<自訂元素>();

        for(int i =0;i<jsonArray.length();i++){
           JSONObject jsonData=jsonArray.getJSONObject(i);
           items.add(new Re1_list(jsonData.getString(資料位置)));
        }
        自訂Adapter SA=new 自訂Adapter(context,items);
        Re1.setLayoutManager(new GridLayoutManager(this,輸入幾個欄位)); 
        Re1.setAdapter(SA);



自訂Adapter的方法:

class Adapter名稱 extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener {
    private Context context;
    private ArrayList<自訂元素> items;

//自設OnClickListener 的方法如下:
private OnItemClickListener monitemClickListener=null;
public static interface OnItemClickListener{
    void onItemClick(View view,int i);

}

    public Adapter名稱(Context context, ArrayList<自訂元素> items) {
        this.context = context;
        this.items=items;

    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View item = LayoutInflater.from(context).inflate(layout的顯示畫面檔案,null);
        RecyclerView.ViewHolder holder = new Holder名稱(item);
        item.setOnClickListener(this);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    Holder名稱 hold=(Holder名稱) viewHolder;
    自訂元素 data = items.get(i);
        hold.自訂變數名.setText(data.自訂元素的get);
        hold.itemView.setTag(i);
    }

    @Override
    public int getItemCount() {
        return items == null?0:items.size();
    }

    @Override
    public void onClick(View v) {
        if(monitemClickListener != null){
            monitemClickListener.onItemClick(v,(int)v.getTag());

        }
    }

    public void setOnItemClickListener(OnItemClickListener monitemClickListener) {
        this.monitemClickListener = monitemClickListener;
    }

    private class Holder名稱 extends RecyclerView.ViewHolder {
        private TextView 自訂變數名;
        public Holder名稱(View itemView) {
            super(itemView);
           自訂變數名=itemView.findViewById(對應layout的顯示畫面檔案裡的元件名);
        }
    }
}



教學影片:

 

沒有留言:

張貼留言

影片的問題請留在影片的留言區裡。
部落格不會另外通知給我,所以很難發現你有留言。