我正在尝试将消息n日期放在它下面的同一个泡泡Messeage TextView中。 所以我使用LayoutParams向左或向右泡泡。
但是我收到了这个错误。
FATAL EXCEPTION: main
Process: com.rana.sahaj.myyu, PID: 18103
java.lang.ClassCastException: android.widget.AbsListView$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
at com.rana.sahaj.myyu.SingleMessageRoomActivity$MessagesAdapter.getView(SingleMessageRoomActivity.java:326)
at android.widget.AbsListView.obtainView(AbsListView.java:2257)
at android.widget.ListView.makeAndAddView(ListView.java:1790)
at android.widget.ListView.fillDown(ListView.java:691)
at android.widget.ListView.fillFromTop(ListView.java:752)
at android.widget.ListView.layoutChildren(ListView.java:1616)
at android.widget.AbsListView.onLayout(AbsListView.java:2089)
at android.view.View.layout(View.java:14828)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14828)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14828)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14828)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14828)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14828)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14828)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2026)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1783)
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)
at android.app.ActivityThread.main(ActivityThread.java:5052)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
getView()是SingleMessageRoom Activity。
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View convertView;
if(view == null){
convertView = layoutInflater.inflate(R.layout.message, parent, false);
} else {
convertView = view;
}
Message message = getItem(position);
TextView nameView = (TextView)convertView.findViewById(R.id.message);
nameView.setText(message.getText());
TextView timeView=(TextView)convertView.findViewById(R.id.timeMessage);
timeView.setText(message.getTime());
LinearLayout mLinearLayout=(LinearLayout)convertView.findViewById(R.id.layoutBubble);
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)mLinearLayout.getLayoutParams();
int sdk = Build.VERSION.SDK_INT;
if (message.getSender().equals(EmailPref)){
if (sdk >= Build.VERSION_CODES.JELLY_BEAN) {
mLinearLayout.setBackground(this.getContext().getResources().getDrawable(R.drawable.mybubbleown2));
nameView.setTextColor(this.getContext().getResources().getColor(R.color.white));
} else{
mLinearLayout.setBackground(getDrawable(R.drawable.mybubbleown2));
nameView.setTextColor(this.getContext().getResources().getColor(R.color.white));
}
layoutParams.gravity = Gravity.RIGHT;
}else{
if (sdk >= Build.VERSION_CODES.JELLY_BEAN) {
mLinearLayout.setBackground(this.getContext().getResources().getDrawable(R.drawable.myotherbubbleown2));
nameView.setTextColor(this.getContext().getResources().getColor(R.color.black));
} else{
mLinearLayout.setBackground(getDrawable(R.drawable.myotherbubbleown2));
nameView.setTextColor(this.getContext().getResources().getColor(R.color.black));
}
layoutParams.gravity = Gravity.LEFT;
}
mLinearLayout.setLayoutParams(layoutParams);
return convertView;
}