Java 未在适配器中获取父视图元素

Java 未在适配器中获取父视图元素,java,android,Java,Android,我有一个名为PaymentMethodAdapter的适配器。我试图访问它的父视图元素,它已经存在于xml中 ViewGroup parentView; LinearLayout listView; public View getView(int position, View convertView, ViewGroup parent) { parentView = parent; listView = (LinearLayout) parentView.findViewByI

我有一个名为
PaymentMethodAdapter
的适配器。我试图访问它的父视图元素,它已经存在于
xml

ViewGroup parentView;
LinearLayout listView;

public View getView(int position, View convertView, ViewGroup parent) {
    parentView = parent;
    listView = (LinearLayout) parentView.findViewById(R.id.ben_pay_methods);
}
我收到
空指针异常
错误:

跟踪

01-20 13:22:47.075    6569-6569/com.example.android.mtesapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.android.mtesapp, PID: 6569
java.lang.NullPointerException
        at com.example.android.mtesapp.PaymentMethodAdapter.getView(PaymentMethodAdapter.java:65)
        at com.example.android.mtesapp.EditBeneficiaryActivity.show_receiving_methods(EditBeneficiaryActivity.java:315)
        at com.example.android.mtesapp.EditBeneficiaryActivity$AsyncTaskGetBenPaymentMethods.onPostExecute(EditBeneficiaryActivity.java:299)
        at com.example.android.mtesapp.EditBeneficiaryActivity$AsyncTaskGetBenPaymentMethods.onPostExecute(EditBeneficiaryActivity.java:283)
        at android.os.AsyncTask.finish(AsyncTask.java:632)
        at android.os.AsyncTask.access$600(AsyncTask.java:177)
        at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.app.ActivityThread.main(ActivityThread.java:5872)
        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:858)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
        at dalvik.system.NativeStart.main(Native Method)
如何检查父视图中的元素是否存在

编辑


使用convertView从列表的项目视图中展开任何视图

public View getView(int position, View convertView, ViewGroup parent) {

convertView = getActivity().getLayoutInflater().inflate(R.layout.your_xml, null);
        listView = (LinearLayout) convertView.findViewById(R.id.ben_pay_methods);
}

正如@Fouad Wahabi在评论中已经指出的,我发现您的布局XML无效

没有id为布局1的视图。此外,尽管LinearLayout不是RelativeLayout的子视图,但它下面有一个android:layout\uattibute。这可能会导致错误

尝试按如下方式删除属性:

<LinearLayout
    android:orientation="vertical"
    android:id="@+id/ben_pay_methods"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</LinearLayout>


能否提供包含以下内容的孔XML文件:ParentView@FouadWahabi:请检查编辑器什么使您认为
parentView
不为空?(提示:根据stacktrace,它是。)@RonakPatel的可能副本我在您的XML文件中没有看到任何可以与适配器一起工作的内容,您是否正在使用
AdapterView
,因为在
AdapterView
上调用
setAdapter
后会设置父视图,您在上面粘贴的XML是您的列表项,对吗?列表项是什么意思?公共视图getView(int位置、视图convertView、视图组父级)此方法属于适配器。所以在adapter中,我们总是膨胀列表视图项并根据它设置它们的值。它说我不能在这里调用
getActivity()
。。无法解析方法我刚刚删除了该行。不过,面对同样的问题。嗯,我不知道了@卡维斯可以帮你。
<LinearLayout
    android:orientation="vertical"
    android:id="@+id/ben_pay_methods"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</LinearLayout>