Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialBen Basha
2,411 Pointserrors trying get MessageAdapter to work
hi,
i try to apply the message adapter on the list but get full of errors. i got that the problem is in the xml but what is it? maybe im wrong...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/msgIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/message_list_item_vertical_margin"
/>
<TextView
android:id="@+id/senderLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/message_list_item_vertical_margin"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
MsgAdapter.java
package com.benbasha.sedu;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.parse.ParseObject;
public class MsgAdapter extends ArrayAdapter<ParseObject> {
protected Context mContext;
protected List<ParseObject> mMsg;
public MsgAdapter(Context context, List<ParseObject> messages) {
super(context, R.layout.message_item, messages);
mContext = context;
mMsg = messages;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.message_item, null);
holder = new ViewHolder();
holder.iconImageView = (ImageView) convertView.findViewById(R.id.msgIcon);
holder.nameLabel = (TextView) convertView.findViewById(R.id.senderLabel);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ParseObject msg = mMsg.get(position);
if (msg.getString(Constants.KEY_FILE_TYPE).equals(Constants.TYPE_VIDEO))
holder.iconImageView.setImageResource(R.drawable.ic_action_picture);
else
holder.iconImageView.setImageResource(R.drawable.ic_action_camera);
holder.nameLabel.setText(msg.getString(Constants.KEY_SENDER_NAME));
return convertView;
}
private static class ViewHolder {
ImageView iconImageView;
TextView nameLabel;
}
}
The ERRORs
06-05 22:33:58.431: E/AndroidRuntime(1621): FATAL EXCEPTION: main
06-05 22:33:58.431: E/AndroidRuntime(1621): Process: com.benbasha.sedu, PID: 1621
06-05 22:33:58.431: E/AndroidRuntime(1621): android.view.InflateException: Binary XML file line #6: Error inflating class <unknown>
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.LayoutInflater.createView(LayoutInflater.java:620)
06-05 22:33:58.431: E/AndroidRuntime(1621): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
06-05 22:33:58.431: E/AndroidRuntime(1621): at com.benbasha.sedu.MsgAdapter.getView(MsgAdapter.java:34)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.AbsListView.obtainView(AbsListView.java:2263)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.ListView.makeAndAddView(ListView.java:1790)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.ListView.fillDown(ListView.java:691)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.ListView.fillFromTop(ListView.java:752)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.ListView.layoutChildren(ListView.java:1630)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.AbsListView.onLayout(AbsListView.java:2091)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.View.layout(View.java:14817)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewGroup.layout(ViewGroup.java:4631)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.View.layout(View.java:14817)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewGroup.layout(ViewGroup.java:4631)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.View.layout(View.java:14817)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewGroup.layout(ViewGroup.java:4631)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1589)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.View.layout(View.java:14817)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewGroup.layout(ViewGroup.java:4631)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.View.layout(View.java:14817)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewGroup.layout(ViewGroup.java:4631)
06-05 22:33:58.431: E/AndroidRuntime(1621): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:374)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.View.layout(View.java:14817)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewGroup.layout(ViewGroup.java:4631)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.View.layout(View.java:14817)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewGroup.layout(ViewGroup.java:4631)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1987)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1744)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.Choreographer.doFrame(Choreographer.java:544)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.os.Handler.handleCallback(Handler.java:733)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.os.Handler.dispatchMessage(Handler.java:95)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.os.Looper.loop(Looper.java:136)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.app.ActivityThread.main(ActivityThread.java:5017)
06-05 22:33:58.431: E/AndroidRuntime(1621): at java.lang.reflect.Method.invokeNative(Native Method)
06-05 22:33:58.431: E/AndroidRuntime(1621): at java.lang.reflect.Method.invoke(Method.java:515)
06-05 22:33:58.431: E/AndroidRuntime(1621): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-05 22:33:58.431: E/AndroidRuntime(1621): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-05 22:33:58.431: E/AndroidRuntime(1621): at dalvik.system.NativeStart.main(Native Method)
06-05 22:33:58.431: E/AndroidRuntime(1621): Caused by: java.lang.reflect.InvocationTargetException
06-05 22:33:58.431: E/AndroidRuntime(1621): at java.lang.reflect.Constructor.constructNative(Native Method)
06-05 22:33:58.431: E/AndroidRuntime(1621): at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.LayoutInflater.createView(LayoutInflater.java:594)
06-05 22:33:58.431: E/AndroidRuntime(1621): ... 54 more
06-05 22:33:58.431: E/AndroidRuntime(1621): Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:464)
06-05 22:33:58.431: E/AndroidRuntime(1621): at android.view.View.<init>(View.java:3569
i google for answer but cant find good one for me.
thanks alot for your help.
1 Answer
Ben Basha
2,411 Pointsahhhh finally get it to work!
i use the wrong section for the demensions that cause the app crash =\
now everything works!
thanks