0

Voici l'erreur que je suis en train d'exécuter mon programme. J'ai essayé quelques solutions qui ont été données sur le débordement de pile, mais je suis incapable de comprendre le problème. Quelqu'un peut-il être assez gentil pour m'aider?Obtention de l'exception d'inflation pour la ligne 21

<?xml version="1.0" encoding="utf-8"?> 
 
<LinearLayout 
 
    xmlns:android="http://schemas.android.com/apk/res/android" 
 
    android:orientation="vertical" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent"> 
 
    <android.support.v7.widget.CardView 
 
     android:id="@+id/contact_card" 
 
     android:layout_width="match_parent" 
 
     android:layout_height="wrap_content"> 
 
     <LinearLayout 
 
      android:weightSum="1" 
 
      android:orientation="horizontal" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content"> 
 
      <LinearLayout 
 
       android:layout_weight="0.8" 
 
       android:layout_gravity="start" 
 
       android:orientation="vertical" 
 
       android:layout_width="0dp" 
 
       android:layout_height="wrap_content"> 
 
       <TextView 
 
        android:id="@+id/name" 
 
        android:textSize="?android:attr/textAppearanceMedium" 
 
        android:layout_width="wrap_content" 
 
        android:layout_height="wrap_content" /> 
 
       <TextView 
 
        android:id="@+id/phone_number" 
 
        android:textSize="?android:attr/textAppearanceSmall" 
 
        android:layout_width="wrap_content" 
 
        android:layout_height="wrap_content" /> 
 
      </LinearLayout> 
 
      <ImageView 
 
       android:contentDescription="@string/call_description" 
 
       android:id="@+id/call_button" 
 
       android:src="@drawable/call" 
 
       android:layout_width="wrap_content" 
 
       android:layout_height="wrap_content" /> 
 
     </LinearLayout> 
 
    </android.support.v7.widget.CardView> 
 

 
</LinearLayout>

package com.example.kalap.contacts_ttm.adapters; 
 

 
import android.app.Activity; 
 
import android.content.Context; 
 
import android.content.Intent; 
 
import android.net.Uri; 
 
import android.support.design.widget.Snackbar; 
 
import android.support.v7.widget.CardView; 
 
import android.support.v7.widget.RecyclerView; 
 
import android.util.Log; 
 
import android.view.LayoutInflater; 
 
import android.view.View; 
 
import android.view.ViewGroup; 
 
import android.widget.ImageView; 
 
import android.widget.TextView; 
 

 
import com.example.kalap.contacts_ttm.R; 
 
import com.example.kalap.contacts_ttm.objects.Contact; 
 

 
import java.util.ArrayList; 
 

 
/** 
 
* Created by kalap on 20-03-2016. 
 
*/ 
 
public class ContactAdapter extends RecyclerView.Adapter<ContactAdapter.ContactViewHolder> { 
 

 
    private ArrayList<Contact> contactList; 
 
    private Activity activity; 
 
    private Context context; 
 

 
    public ContactAdapter(ArrayList<Contact> contactList, Activity activity) { 
 
     this.contactList = contactList; 
 
     this.activity = activity; 
 
     this.context = activity.getApplicationContext(); 
 
    } 
 

 
    @Override 
 
    public ContactViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
 
     View view = LayoutInflater.from(context).inflate(R.layout.custom_contact_row, parent, false); 
 
     return new ContactViewHolder(view); 
 
    } 
 

 
    @Override 
 
    public void onBindViewHolder(ContactViewHolder holder, final int position) { 
 
     holder.name.setText(contactList.get(position).getName()); 
 
     holder.phoneNumber.setText(contactList.get(position).getPhoneNumber()); 
 
     holder.callButton.setOnClickListener(new ImageView.OnClickListener() { 
 
      @Override 
 
      public void onClick(View view) { 
 
       if(contactList.get(position).getPhoneNumber().isEmpty()) { 
 
        Snackbar.make(view,"Phone number does not exist",Snackbar.LENGTH_LONG).show(); 
 
       } else { 
 
        Intent call = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + contactList.get(position).getPhoneNumber())); 
 
        try { 
 
         activity.startActivity(call); 
 
        } catch (SecurityException e) { 
 
         Log.e("TTM_Error", e.getMessage()); 
 
         Snackbar.make(view,"Permission to call not given",Snackbar.LENGTH_LONG).show(); 
 
        } 
 
       } 
 
      } 
 
     }); 
 
    } 
 

 
    @Override 
 
    public int getItemCount() { 
 
     return contactList.size(); 
 
    } 
 

 
    public class ContactViewHolder extends RecyclerView.ViewHolder { 
 

 
     private TextView name; 
 
     private TextView phoneNumber; 
 
     private ImageView callButton; 
 
     private CardView contactCard; 
 

 
     public ContactViewHolder(View itemView) { 
 
      super(itemView); 
 
      name = (TextView) itemView.findViewById(R.id.name); 
 
      phoneNumber = (TextView) itemView.findViewById(R.id.phone_number); 
 
      callButton = (ImageView) itemView.findViewById(R.id.call_button); 
 
      contactCard = (CardView) itemView.findViewById(R.id.contact_card); 
 
     } 
 
    } 
 
}

E/AndroidRuntime: FATAL EXCEPTION: main 
 
                      Process: com.example.kalap.contacts_ttm, PID: 955 
 
                      android.view.InflateException: Binary XML file line #21: Error inflating class TextView 
 
                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:400) 
 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
 
                       at com.example.kalap.contacts_ttm.adapters.ContactAdapter.onCreateViewHolder(ContactAdapter.java:39) 
 
                       at com.example.kalap.contacts_ttm.adapters.ContactAdapter.onCreateViewHolder(ContactAdapter.java:25) 
 
                       at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5464) 
 
                       at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4689) 
 
                       at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4599) 
 
                       at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1988) 
 
                       at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1384) 
 
                       at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1347) 
 
                       at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) 
 
                       at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3003) 
 
                       at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2600) 
 
                       at android.view.View.measure(View.java:16508) 
 
                       at android.widget.RelativeLayout.measureChild(RelativeLayout.java:689) 
 
                       at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:473) 
 
                       at android.view.View.measure(View.java:16508) 
 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
 
                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
 
                       at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) 
 
                       at android.view.View.measure(View.java:16508) 
 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
 
                       at android.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:391) 
 
                       at android.view.View.measure(View.java:16508) 
 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
 
                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
 
                       at android.view.View.measure(View.java:16508) 
 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
 
                       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
 
                       at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 
 
                       at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
 
                       at android.view.View.measure(View.java:16508) 
 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
 
                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
 
                       at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291) 
 
                       at android.view.View.measure(View.java:16508) 
 
                       at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1955) 
 
                       at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1152) 
 
                       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1334) 
 
                       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1039) 
 
                       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5648) 
 
                       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 
 
                       at android.view.Choreographer.doCallbacks(Choreographer.java:574) 
 
                       at android.view.Choreographer.doFrame(Choreographer.java:544) 
 
                       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 
 
                       at android.os.Handler.handleCallback(Handler.java:733) 
 
                       at android.os.Handler.dispatchMessage(Handler.java:95) 
 
                       at android.os.Looper.loop(Looper.java:136) 
 
                      \t at android.app.ActivityThread

+0

Le problème est dans le fichier de disposition 'R.layout.custom_contact_row'. Postez votre fichier de mise en page 'custom_contact_row' –

+0

Le premier code xml est le fichier de mise en page –

Répondre

0

Le problème est résolu, il est arrivé à cause t o le textSize donné dans TextView, c'est-à-dire? Android un. Je les ai supprimés et j'ai codé en dur la taille pour résoudre le problème.