GVKun编程网logo

android.widget.RelativeLayout $LayoutParams无法强制转换为android.widget.AbsListView $LayoutParams

12

针对android.widget.RelativeLayout$LayoutParams无法强制转换为android.widget.AbsListView$LayoutParams这个问题,本篇文章进

针对android.widget.RelativeLayout $LayoutParams无法强制转换为android.widget.AbsListView $LayoutParams这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展:java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to androi...、Android java.lang.ClassCastException:android.widget.LinearLayout无法强制转换为android.widget.TextView、Android java.lang.ClassCastException:无法将android.widget.RelativeLayout强制转换为android.widget.EditText、android LayoutInflater 产生 view 的 LayoutParams 属性为什么是 null等相关知识,希望可以帮助到你。

本文目录一览:

android.widget.RelativeLayout $LayoutParams无法强制转换为android.widget.AbsListView $LayoutParams

android.widget.RelativeLayout $LayoutParams无法强制转换为android.widget.AbsListView $LayoutParams

@H_301_0@
在众多教程和示例项目之后,我得到了以下代码,该代码应该在ListView中填充包含Line对象中多个值的行.

作为一个新手程序员,我不能为我的生活弄清楚我的代码在哪里失败.任何帮助将非常感激!

如果我遗漏了重要信息,请告诉我,我会更新这个问题.

在Fragment中启动它的代码:

@Override
    public void onActivityCreated(Bundle savedInstanceState){
        super.onActivityCreated(savedInstanceState);
        Intent i = getActivity().getIntent();

        if (i.getSerializableExtra("ChosenWorkorder") != null){

            Workorder selectedWorkorder = (Workorder) i.getSerializableExtra("ChosenWorkorder");                

            Articleslistadapter articleslistadapter = new Articleslistadapter(getActivity(),R.layout.articles_list_row,selectedWorkorder.GetAllLines());

            ListView articlesList = (ListView) getActivity().findViewById(R.id.ArticlesList);
            articlesList.setAdapter(articleslistadapter);

        }
    }

Custom ArrayAdapter:

public class Articleslistadapter extends ArrayAdapter<Line> {

    private List<Line> lineList;
    private Context context;

    public Articleslistadapter(Context context,int textViewResourceId,List<Line> objects) {
    super(context,textViewResourceId,objects);
        this.lineList = objects;
        this.context = context;
    }

    public int getCount() {
        return lineList.size();
    }

    public Line getItem(int position) {
        return lineList.get(position);
    }

    public long getItemId(int position) {
        return position;
    }

    @SuppressLint("ViewHolder") /* Que? */
    public View getView(int position,View convertView,ViewGroup parent) {

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.articles_list_row,parent,false);

        TextView articleName = (TextView)     rowView.findViewById(R.id.textArticleName);
        EditText articleAmount = (EditText)     rowView.findViewById(R.id.textArticleAmount);

        Line articleLine = lineList.get(position);

        articleName.setText(articleLine.getLineArticleDescription());
        articleAmount.setText(articleLine.getLineArticleAmount().toString());

        return parent;      
    }
}

下面是LogCat日志以便澄清(对我而言,这意味着什么).

E/AndroidRuntime(15941): FATAL EXCEPTION: main
E/AndroidRuntime(15941): Process: be.mabolifting.maboserve,PID: 15941
E/AndroidRuntime(15941): java.lang.classCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
E/AndroidRuntime(15941):    at android.widget.ListView.setupChild(ListView.java:1826)
E/AndroidRuntime(15941):    at android.widget.ListView.makeAndAddView(ListView.java:1793)
E/AndroidRuntime(15941):    at android.widget.ListView.fillDown(ListView.java:691)
E/AndroidRuntime(15941):    at android.widget.ListView.fillFromTop(ListView.java:752)
E/AndroidRuntime(15941):    at android.widget.ListView.layoutChildren(ListView.java:1630)
E/AndroidRuntime(15941):    at android.widget.AbsListView.onLayout(AbsListView.java:2087)
E/AndroidRuntime(15941):    at android.view.View.layout(View.java:14860)
E/AndroidRuntime(15941):    at android.view.ViewGroup.layout(ViewGroup.java:4643)
E/AndroidRuntime(15941):    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
E/AndroidRuntime(15941):    at android.view.View.layout(View.java:14860)
E/AndroidRuntime(15941):    at android.view.ViewGroup.layout(ViewGroup.java:4643)
E/AndroidRuntime(15941):    at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1594)
E/AndroidRuntime(15941):    at android.view.View.layout(View.java:14860)
E/AndroidRuntime(15941):    at android.view.ViewGroup.layout(ViewGroup.java:4643)
E/AndroidRuntime(15941):    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
E/AndroidRuntime(15941):    at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
E/AndroidRuntime(15941):    at android.view.View.layout(View.java:14860)
E/AndroidRuntime(15941):    at android.view.ViewGroup.layout(ViewGroup.java:4643)
E/AndroidRuntime(15941):    at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:374)
E/AndroidRuntime(15941):    at android.view.View.layout(View.java:14860)
E/AndroidRuntime(15941):    at android.view.ViewGroup.layout(ViewGroup.java:4643)
E/AndroidRuntime(15941):    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
E/AndroidRuntime(15941):    at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
E/AndroidRuntime(15941):    at android.view.View.layout(View.java:14860)
E/AndroidRuntime(15941):    at android.view.ViewGroup.layout(ViewGroup.java:4643)
E/AndroidRuntime(15941):    at android.view.ViewRootImpl.performlayout(ViewRootImpl.java:2013)
E/AndroidRuntime(15941):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1770)
E/AndroidRuntime(15941):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1019)
E/AndroidRuntime(15941):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5725)
E/AndroidRuntime(15941):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
E/AndroidRuntime(15941):    at android.view.Choreographer.doCallbacks(Choreographer.java:574)
E/AndroidRuntime(15941):    at android.view.Choreographer.doFrame(Choreographer.java:544)
E/AndroidRuntime(15941):    at android.view.Choreographer$FramedisplayEventReceiver.run(Choreographer.java:747)
E/AndroidRuntime(15941):    at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime(15941):    at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(15941):    at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(15941):    at android.app.ActivityThread.main(ActivityThread.java:5086)
E/AndroidRuntime(15941):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(15941):    at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(15941):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
E/AndroidRuntime(15941):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
E/AndroidRuntime(15941):    at dalvik.system.NativeStart.main(Native Method)

解决方法

在你的getView()中,改变
return parent;

return rowView;

getView()应返回行视图而不是放置行的父级.父视图仅作为参数提供,以便视图膨胀可以处理match_parent大小等.

:java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to androi...

:java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to androi...

:java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams

这个错首先说明:类型转化异常

解决方法:

一、详细检查是否将某种组件强制转换为另一种类型

二、本地声明类型是否与布局文件中的一致

三、获取的布局参数的父类和布局文件不一致

总之,要细心将布局文件类型与activity中的一致。


Android java.lang.ClassCastException:android.widget.LinearLayout无法强制转换为android.widget.TextView

Android java.lang.ClassCastException:android.widget.LinearLayout无法强制转换为android.widget.TextView

我正在尝试打印listView中单击的值,但后来我得到以下异常:

07-04 10:40:56.482: E/AndroidRuntime(1356): FATAL EXCEPTION: main
07-04 10:40:56.482: E/AndroidRuntime(1356): java.lang.classCastException:      android.widget.LinearLayout cannot be cast to android.widget.TextView
07-04 10:40:56.482: E/AndroidRuntime(1356):     at com.passwordkeeper.ui.ActivityHomeScreen$1.onItemClick(ActivityHomeScreen.java:88)

这是一段代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mTextView = (TextView) findViewById(R.id.labelList);
    db = new DatabaseHandler(this);
    createList();
    displayList();
}   

createList函数正常工作.这是我的displayList方法:

public void displayList(){
    this.setlistadapter(new ArrayAdapter<String>(this, R.layout.activity_home_screen, R.id.listTextView, mAccountNames));
    mListView = getListView();
    mListView.setonItemClickListener(new OnItemClickListener(){
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            String product = ((TextView) view).getText().toString();
            Log.v("mSelectedProduct", product);
        }           
    });
}

我的文件activity_home_screen.xml的xml代码是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
    android:id="@+id/listTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="28dp"
    android:layout_marginTop="26dp"
    android:textAppearance="?android:attr/textAppearanceLarge" />  

任何帮助都会有用!

谢谢.

解决方法:

你可以试试这个

mListView.setonItemClickListener(new OnItemClickListener(){
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            TextView txtview = (TextView)view.findViewById(R.id.listTextView);
            String product = txtview.getText().toString();
            Log.v("mSelectedProduct", product);
        }           
    });

Android java.lang.ClassCastException:无法将android.widget.RelativeLayout强制转换为android.widget.EditText

Android java.lang.ClassCastException:无法将android.widget.RelativeLayout强制转换为android.widget.EditText

单击按钮将我从一个活动带到另一个活动时,我在Android中收到以下异常(我是Android开发中的新手,因此可能不是最聪明的问题):

java.lang.classCastException: android.widget.RelativeLayout cannot be cast to android.widget.EditText

我试过几次清理项目,尝试过Android Tools中的Fix Project Properties选项,已经检查了xml中的错误,但似乎无法弄清楚.我不得不提到,在发生此异常之前,该按钮可以正常工作一段时间.

这是我的xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/editCustomerPhone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_dark"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".CustomerInfoActivity" >

<FrameLayout
    android:id="@+id/frameLayout1"
    android:layout_width="wrap_content"
    android:layout_height="250dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="@drawable/ic_new_delivery" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Insert Customer Data:"
        android:textColor="@color/light_blue"
        android:textSize="20sp"
        android:text/>

</FrameLayout>

<EditText
    android:id="@+id/editCustomerName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView1"
    android:layout_alignBottom="@+id/textView1"
    android:layout_alignParentRight="true"
    android:ems="10"
    android:inputType="textPersonName"
    android:textColor="@color/light_blue" />

<Button
    android:id="@+id/submitInfoBtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignParentBottom="true"
    android:layout_alignRight="@+id/editCustomerName"
    android:text="Submit Info"
    android:textColor="@color/light_red" 
    android:onClick="submitCustomerInfo"/>

<EditText
    android:id="@+id/editCustomerPhone"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editCustomerName"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/TextView01"
    android:ems="10"
    android:inputType="phone"
    android:textColor="@color/light_red" >

    <requestFocus />
</EditText>

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/frameLayout1"
    android:text="Name:"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/background_light"
    android:textandroid:typeface="serif" />

<TextView
    android:id="@+id/TextView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editCustomerPhone"
    android:layout_marginTop="14dp"
    android:text="Email:"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/background_light"
    android:textandroid:typeface="serif" />

<EditText
    android:id="@+id/editCustomerEmail"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/TextView02"
    android:layout_alignBottom="@+id/TextView02"
    android:layout_alignLeft="@+id/editCustomerPhone"
    android:layout_alignParentRight="true"
    android:ems="10"
    android:inputType="textEmailAddress"
    android:textColor="@color/light_green" />

<TextView
    android:id="@+id/TextView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/TextView02"
    android:layout_below="@+id/editCustomerName"
    android:layout_marginTop="19dp"
    android:text="Phone:"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/background_light"
    android:textandroid:typeface="serif" />
@H_301_17@

这是我在活动中引发异常的onCreate方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_customer_info);

    this.editMail = (EditText)findViewById(R.id.editCustomerEmail);
    this.editName = (EditText)findViewById(R.id.editCustomerName);
    this.editPhone = (EditText)findViewById(R.id.editCustomerPhone); // the exception points me here
}
@H_301_17@

解决方法:

您的代码说:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/editCustomerPhone"
@H_301_17@

editCustomerPhone是相对布局.

android LayoutInflater 产生 view 的 LayoutParams 属性为什么是 null

android LayoutInflater 产生 view 的 LayoutParams 属性为什么是 null

android 通过 LayoutInflater.from (this).inflate (R.layout.left_view, null); 获得的 view。该 view 的 LayoutParams 为什么是 null。

今天关于android.widget.RelativeLayout $LayoutParams无法强制转换为android.widget.AbsListView $LayoutParams的介绍到此结束,谢谢您的阅读,有关:java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to androi...、Android java.lang.ClassCastException:android.widget.LinearLayout无法强制转换为android.widget.TextView、Android java.lang.ClassCastException:无法将android.widget.RelativeLayout强制转换为android.widget.EditText、android LayoutInflater 产生 view 的 LayoutParams 属性为什么是 null等更多相关知识的信息可以在本站进行查询。

本文标签: