綁定帳號登入

Android 台灣中文網

[資訊] 我使用RecyclerView程式碼沒出現錯誤 可是執行時會錯

[複製連結] 查看: 2616|回覆: 5|好評: 0
GUO0630 | 收聽TA | 顯示全部樓層 |閱讀模式
發表於 2018-5-31 00:33

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
這是我的 RecyclerViewAdapter_talk黨
package com.example.wells.ig;

import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

public class RecyclerViewAdapter_talk extends RecyclerView.Adapter<RecyclerViewAdapter_talk.MyViewHolder> {
    private Context mmContext;
    private List<home_talk> mmData;

    public RecyclerViewAdapter_talk(Context mmContext, List<home_talk> mmData){
        this.mmContext =mmContext;
        this.mmData =mmData;

    }


    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view;
        LayoutInflater mmInflater =LayoutInflater.from(mmContext);
        view = mmInflater.inflate(R.layout.activity_time_talk,parent,false);

        return new MyViewHolder(view);
    }

    @Override

    public void onBindViewHolder(@NonNull RecyclerViewAdapter_talk.MyViewHolder holder, final int position) {
        holder.midname.setText(mmData.get(position).getId_name());
        holder.mhandmag.setImageResource(mmData.get(position).getHand_pgm());
        holder.cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent =new Intent(mmContext,time_limit_first.class);
                intent.putExtra("Title",mmData.get(position).getId_name());
                intent.putExtra("Thumbnail",mmData.get(position).getHand_pgm());
                mmContext.startActivity(intent);
            }
        });
    }
    public int getItemCount()  {return mmData.size();}

    public static class MyViewHolder extends RecyclerView.ViewHolder{
        TextView midname;
        ImageView mhandmag;
        CardView cardView;
        public MyViewHolder(View itemView){
            super (itemView);
           midname = itemView.findViewById(R.id.idname);
         mhandmag = itemView.findViewById(R.id.hand);
            cardView=itemView.findViewById(R.id.time_limit_first);

        }

    }
}這是另一個檔案public class home_talk {
    private String Id_name;
    private  int Hand_pgm;


    public home_talk(String id_name, int hand_pgm) {
        Id_name = id_name;
        Hand_pgm = hand_pgm;
    }

    public String getId_name() {
        return Id_name;
    }

    public int getHand_pgm() {
        return Hand_pgm;
    }

    public void setId_name(String id_name) {
        Id_name = id_name;
    }

    public void setHand_pgm(int hand_pgm) {
        Hand_pgm = hand_pgm;
    }
}
主頁

talks= new ArrayList<>();
talks.add(new home_talk("測試1",R.drawable.dog_1));
talks.add(new home_talk("測試2",R.drawable.dog_2));
talks.add(new home_talk("測試3",R.drawable.dog_3));
talks.add(new home_talk("測試4",R.drawable.dog_4));
talks.add(new home_talk("測試5",R.drawable.dog_4));
RecyclerView mmyra =rootView.findViewById(R.id.recyclerview_talk);
RecyclerViewAdapter_talk mmyAdapter =new RecyclerViewAdapter_talk(getActivity(),talks);
mmyra.setLayoutManager(new GridLayoutManager(getActivity(),1,GridLayoutManager.HORIZONTAL,false));
mmyra.setAdapter(mmyAdapter);

新手發文怕有看不懂的地方 多包涵

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

muska1116 | 收聽TA | 顯示全部樓層
發表於 2018-5-31 09:41
程式碼我看沒什麼問題,我建個新專案來跑實機也 ok,你說是執行時發生錯誤,應該是點擊後會閃退,所以我在猜有兩個可能,一個是你的 time_limit_first 這個 Activity 沒有加到 AndroidManifest.xml,一個是 time_limit_first 在解析 Intent 的資料那裡出錯,如果都不是的話,可能就要看一下 Log 才知道。

評分

參與人數 1碎鑽 +2 幫助 +2 收起 理由
woolala + 2 + 2 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

 樓主| GUO0630 | 收聽TA | 顯示全部樓層
發表於 2018-5-31 16:38
muska1116 發表於 2018-5-31 09:41
程式碼我看沒什麼問題,我建個新專案來跑實機也 ok,你說是執行時發生錯誤,應該是點擊後會閃退,所以我在 ...

這是他的錯誤訊息 看不是很懂 抱歉

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.wells.ig, PID: 4990
                  java.lang.ClassCastException: android.support.v7.widget.AppCompatButton cannot be cast to android.widget.ImageView
                      at com.example.wells.ig.RecyclerViewAdapter_talk$MyViewHolder.<init>(RecyclerViewAdapter_talk.java:61)
                      at com.example.wells.ig.RecyclerViewAdapter_talk.onCreateViewHolder(RecyclerViewAdapter_talk.java:34)
                      at com.example.wells.ig.RecyclerViewAdapter_talk.onCreateViewHolder(RecyclerViewAdapter_talk.java:16)
                      at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6685)
                      at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5869)
                      at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
                      at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
                      at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
                      at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:556)
                      at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
                      at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
                      at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)
                      at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
                      at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:3225)
                      at android.view.View.measure(View.java:22944)
                      at android.support.constraint.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1210)
                      at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:1550)
                      at android.view.View.measure(View.java:22944)
                      at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1308)
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                      at android.widget.ScrollView.onMeasure(ScrollView.java:350)
                      at android.view.View.measure(View.java:22944)
                      at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:1617)
                      at android.view.View.measure(View.java:22944)
                      at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1632)
                      at android.view.View.measure(View.java:22944)
                      at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:1617)
                      at android.view.View.measure(View.java:22944)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6729)
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                      at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141)
                      at android.view.View.measure(View.java:22944)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6729)
                      at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1513)
                      at android.widget.LinearLayout.measureVertical(LinearLayout.java:805)
                      at android.widget.LinearLayout.onMeasure(LinearLayout.java:684)
                      at android.view.View.measure(View.java:22944)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6729)
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                      at android.view.View.measure(View.java:22944)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6729)
                      at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1513)
                      at android.widget.LinearLayout.measureVertical(LinearLayout.java:805)
                      at android.widget.LinearLayout.onMeasure(LinearLayout.java:684)
                      at android.view.View.measure(View.java:22944)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6729)
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                      at com.android.internal.policy.DecorView.onMeasure(DecorView.java:720)
                      at android.view.View.measure(View.java:22944)
                      at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2687)
                      at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1553)
                      at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1824)
                      at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1441)
                      at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7076)
                      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:935)
                      at android.view.Choreographer.doCallbacks(Choreographer.java:747)
                      at android.view.Choreographer.doFrame(Choreographer.java:682)
                      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:921)
                      at android.os.Handler.handleCallback(Handler.java:819)
                      at android.os.Handler.dispatchMessage(Handler.java:99)
                      at android.os.Looper.loop(Looper.java:164)
                      at android.app.ActivityThread.main(ActivityThread.java:6656)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
I/Process: Sending signal. PID: 4990 SIG: 9
Application terminated.
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

 樓主| GUO0630 | 收聽TA | 顯示全部樓層
發表於 2018-5-31 16:39
本帖最後由 GUO0630 於 2018-5-31 21:15 編輯

已解決問題  xml黨裡面有東西錯誤 抱歉打擾了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

 樓主| GUO0630 | 收聽TA | 顯示全部樓層
發表於 2018-5-31 16:48
本帖最後由 GUO0630 於 2018-5-31 21:17 編輯

因為LAG多PO的  無法刪除...
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

muska1116 | 收聽TA | 顯示全部樓層
發表於 2018-5-31 21:23
這句其實就是答案了XD
android.support.v7.widget.AppCompatButton cannot be cast to android.widget.ImageView

評分

參與人數 2碎鑽 +3 幫助 +3 收起 理由
GUO0630 + 1 + 1 讚一個!
woolala + 2 + 2 讚一個!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 1 反對 0

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則