2017-01-24 26 views
0

expandable getgroupviewメソッドを使用してtextviewに値を設定しようとしているときに、何らかのエラーが発生しました。値を設定することができないために何をするかを提案してくださいExpandablelistviewを使用してテキストビューで値を設定する方法

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 

    CommentModel commentModel = (CommentModel) getGroup(groupPosition); 

    ViewHolder viewholder=null; 
    if (convertView==null) { 

     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     inflater.inflate(R.layout.commentparent,null); 
     viewholder = new ViewHolder(); 
     Log.i("MYNEWSAMSING",commentModel.getContent()); 
     viewholder.parentname = (TextView) convertView.findViewById(R.id.parentname); 

     convertView.setTag(viewholder); 
    }else{ 
     viewholder=(ViewHolder)convertView.getTag(); 

    } 
     viewholder.parentname.setText(commentModel.getContent()); 


    return convertView; 
} 

これは、プログラムの実行中に発生しているエラーです。

E/AndroidRuntime: FATAL EXCEPTION: main 
              Process: com.mytrendin.simple, PID: 8149 
              java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference 
               at com.mytrendin.simple.Expandablelistadapter.getGroupView(Expandablelistadapter.java:87) 
               at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:446) 
               at android.widget.AbsListView.obtainView(AbsListView.java:2362) 
               at android.widget.ListView.measureHeightOfChildren(ListView.java:1326) 
               at android.widget.ListView.onMeasure(ListView.java:1233) 
               at android.view.View.measure(View.java:19734) 
               at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
               at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
               at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
               at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
               at android.view.View.measure(View.java:19734) 
               at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
               at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
               at android.view.View.measure(View.java:19734) 
               at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
               at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
               at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
               at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
               at android.view.View.measure(View.java:19734) 
               at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
               at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
               at com.android.internal.policy.DecorView.onMeasure(DecorView.java:687) 
               at android.view.View.measure(View.java:19734) 
               at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271) 
               at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1358) 
               at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607) 
               at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246) 
               at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6301) 
               at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871) 
               at android.view.Choreographer.doCallbacks(Choreographer.java:683) 
               at android.view.Choreographer.doFrame(Choreographer.java:619) 
               at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857) 
               at android.os.Handler.handleCallback(Handler.java:751) 
               at android.os.Handler.dispatchMessage(Handler.java:95) 
               at android.os.Looper.loop(Looper.java:154) 
               at android.app.ActivityThread.main(ActivityThread.java:6077) 
               at java.lang.reflect.Method.invoke(Native Method) 
               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

答えて

2

問題がif文です。

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
convertView = inflater.inflate(R.layout.commentparent,null); 
viewholder = new ViewHolder(); 
Log.i("MYNEWSAMSING",commentModel.getContent()); 
viewholder.parentname = (TextView) convertView.findViewById(R.id.parentname); 
convertView.setTag(viewholder); 
0

あなたはView参照されていません:あなたは、コードが表示された場合

は、以下の声明の中で、convertViewは以下

viewholder.parentname = (TextView) convertView.findViewById(R.id.parentname); 

があれば条件の正しい実装ではnullです inflate()メソッドから返されました。

if (convertView==null) { 

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    convertView = inflater.inflate(R.layout.commentparent,null); 
    viewholder = new ViewHolder(); 
    Log.i("MYNEWSAMSING",commentModel.getContent()); 
    viewholder.parentname = (TextView) convertView.findViewById(R.id.parentname); 

    convertView.setTag(viewholder); 
} 
: は convertView

に次の変更をViewそのオブジェクトをホールド

関連する問題