列表视图中的空对象引用

时间:2015-04-18 18:53:18

标签: android listview android-custom-view

我正在尝试使用指定的代码创建自定义列表视图。但最后它告诉我这个错误。一直在努力解决它,如果有人能帮助我解决它,我会很高兴。下面给出了相同的代码。

自定义适配器类

public class CustomAdapter extends ArrayAdapter<Row> {
Context context;
Row row_item;
public CustomAdapter(Context context, List<Row> items) {
    super(context, R.layout.list_item, items);
    this.context = context;
}

private class ViewHolder {
     AutofitTextView EventName;
     AutofitTextView EventText;
     AutofitTextView GameName;
     AutofitTextView TeamNamePlayerNames1;
     AutofitTextView set1scoreA;
     AutofitTextView set2scoreA;
     AutofitTextView set3scoreA;
     AutofitTextView TeamNamePlayerNames2;
     AutofitTextView set1scoreB;
     AutofitTextView set2scoreB;
     AutofitTextView set3scoreB;
}

@Override
public View getView(int position, View view, ViewGroup parent) {
    View convertView=view;
    ViewHolder holder;
    row_item = getItem(position);
    LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if(convertView==null)
    {
        convertView = mInflater.inflate(R.layout.list_item, null);
        holder = new ViewHolder();

        holder.EventName = (AutofitTextView)convertView.findViewById( R.id.EventName);
        holder.EventText = (AutofitTextView)convertView.findViewById(R.id.EventText);
        holder.GameName = (AutofitTextView)convertView.findViewById(R.id.GameName);
        holder.TeamNamePlayerNames1 = (AutofitTextView)convertView.findViewById(R.id.TeamName_PlayerNames1);
        holder.set1scoreA = (AutofitTextView)convertView.findViewById(R.id.set1scoreA);
        holder.set2scoreA = (AutofitTextView)convertView.findViewById(R.id.set2scoreA);
        holder.set3scoreA = (AutofitTextView)convertView.findViewById(R.id.set3scoreA);
        holder.TeamNamePlayerNames2 = (AutofitTextView)convertView.findViewById(R.id.TeamName_PlayerNames2);
        holder.set1scoreB = (AutofitTextView)convertView.findViewById(R.id.set1scoreB);
        holder.set2scoreB = (AutofitTextView)convertView.findViewById(R.id.set2scoreB);
        holder.set3scoreB = (AutofitTextView)convertView.findViewById(R.id.set3scoreB);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    Log.e("ROW ITEM",row_item.getEvent_name());
    holder.EventName.setText("TNBL");
    holder.EventText.setText("SEMI FINALS");
    holder.GameName.setText("GAME 3");
    holder.TeamNamePlayerNames1.setText("LALK\nVIGNESH\nKARTHIK");
    holder.TeamNamePlayerNames2.setText("VLSC\nKRISHNA\nSTEVE");
    holder.set1scoreA.setText("6");
    holder.set2scoreA.setText("7");
    holder.set3scoreA.setText("8");
    holder.set1scoreB.setText("9");
    holder.set2scoreB.setText("10");
    holder.set3scoreB.setText("11");
    return convertView;
}

}

行项目类

public class Row {
private String event_name;
private String event_text;
private String game_name;
private String teamA_playerA_name;
private String teamB_playerB_name;
private String set1_scoreA;
private String set2_scoreA;
private String set3_scoreA;
private String set1_scoreB;
private String set2_scoreB;
private String set3_scoreB;

public Row(String event_name, String event_text,
           String game_name, String teamA_playerA_name,
           String teamB_playerB_name, String set1_scoreA,
           String set2_scoreA, String set3_scoreA,
           String set1_scoreB, String set2_scoreB,
           String set3_scoreB) {
    this.event_name = event_name;
    this.event_text = event_text;
    this.game_name = game_name;
    this.teamA_playerA_name = teamA_playerA_name;
    this.teamB_playerB_name = teamB_playerB_name;
    this.set1_scoreA = set1_scoreA;
    this.set2_scoreA = set2_scoreA;
    this.set3_scoreA = set3_scoreA;
    this.set1_scoreB = set1_scoreB;
    this.set2_scoreB = set2_scoreB;
    this.set3_scoreB = set3_scoreB;
}

public String getEvent_name() {
    return event_name;
}

public void setEvent_name(String event_name) {
    this.event_name = event_name;
}

public String getEvent_text() {
    return event_text;
}

public void setEvent_text(String event_text) {
    this.event_text = event_text;
}

public String getGame_name() {
    return game_name;
}

public void setGame_name(String game_name) {
    this.game_name = game_name;
}

public String getTeamA_playerA_name() {
    return teamA_playerA_name;
}

public void setTeamA_playerA_name(String teamA_playerA_name) {
    this.teamA_playerA_name = teamA_playerA_name;
}

public String getTeamB_playerB_name() {
    return teamB_playerB_name;
}

public void setTeamB_playerB_name(String teamB_playerB_name) {
    this.teamB_playerB_name = teamB_playerB_name;
}

public String getSet1_scoreA() {
    return set1_scoreA;
}

public void setSet1_scoreA(String set1_scoreA) {
    this.set1_scoreA = set1_scoreA;
}

public String getSet2_scoreA() {
    return set2_scoreA;
}

public void setSet2_scoreA(String set2_scoreA) {
    this.set2_scoreA = set2_scoreA;
}

public String getSet3_scoreA() {
    return set3_scoreA;
}

public void setSet3_scoreA(String set3_scoreA) {
    this.set3_scoreA = set3_scoreA;
}

public String getSet1_scoreB() {
    return set1_scoreB;
}

public void setSet1_scoreB(String set1_scoreB) {
    this.set1_scoreB = set1_scoreB;
}

public String getSet2_scoreB() {
    return set2_scoreB;
}

public void setSet2_scoreB(String set2_scoreB) {
    this.set2_scoreB = set2_scoreB;
}

public String getSet3_scoreB() {
    return set3_scoreB;
}

public void setSet3_scoreB(String set3_scoreB) {
    this.set3_scoreB = set3_scoreB;
}

}

活动类

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Parse.initialize(MainActivity.this, "FAHJ1NIN9m2nEqUKX8NDALu4Et6jMDbOgfmHGAJi", "jaqIzmVvvMmyWx7lB2mAAXlpYWuYxUZapIdcCr0D");
    listView = (ListView) findViewById(R.id.listView);
    rowItemsList = new ArrayList<Row>();
    refresh_rowItems = new ArrayList<Row>();
    query = ParseQuery.getQuery("TV");
    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> list, ParseException e) {
            event_name = null;
            event_text = null;
            event_name = list.get(0).getString("EventName");
            event_text = list.get(0).getString("EventText");
        }
    });
    query = ParseQuery.getQuery("Game");
    query.orderByAscending("Serial");
    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> parseObjects, ParseException e) {
            game_name = null;
            teamA_playersA_name = null;
            teamB_playersB_name = null;
            set1Sa = null;
            set2Sa = null;
            set3Sa = null;
            set1Sb = null;
            set2Sb = null;
            set3Sb = null;
            for (final ParseObject ob : parseObjects) {
                rowItemsList = new ArrayList<Row>();
                ob.fetchInBackground(new GetCallback<ParseObject>() {
                    @Override
                    public void done(ParseObject parseObject, ParseException e) {
                        if (ob.getBoolean("live_status") && !parseObject.getBoolean("COMPLETED")) {
                            Log.e("PARSE OBJECT BOOLEAN STATUS AFTER", String.valueOf(parseObject.getBoolean("live_status")));

                            Log.e("PARSE OBJECT MATCH NAME ", event_name + " : " + event_text + " : " + game_name);
                            //------------------------------------------- GET MATCHNAME , TEAM NAME AND PLAYERS NAME------------------------------------------- //
                            game_name = ob.getString("Matches");
                            teamA_playersA_name = ob.getString("Team_A") + "\n" + ob.getString("Player1_TeamA") + "\n" + ob.getString("Player2_TeamA");
                            teamB_playersB_name = ob.getString("Team_B") + "\n" + ob.getString("Player1_TeamB") + "\n" + ob.getString("Player2_TeamB");
                            //------------------------------------------------GET TEAM SCORE SET WISE------------------------------------------------------//
                            set1Sa = ob.getString("Set1_ScoreA");
                            set2Sa = ob.getString("Set2_ScoreA");
                            set3Sa = ob.getString("Set3_ScoreA");

                            set1Sb = ob.getString("Set1_ScoreB");
                            set2Sb = ob.getString("Set2_ScoreB");
                            set3Sb = ob.getString("Set3_ScoreB");
                            //----------------------------------------SET ADAPTER FOR ROW ITEM------------------------------------------------------------//
                            rowitem = new Row(event_name, event_text, game_name, teamA_playersA_name, teamB_playersB_name, set1Sa, set2Sa, set3Sa, set1Sb, set2Sa, set3Sa);
                            rowItemsList.add(refresh_rowitem);
                            adapter = new CustomAdapter(MainActivity.this, rowItemsList);
                            adapter.notifyDataSetChanged();
                        }

                        listView.setAdapter(adapter);
                    }
                });
            }
        }


    });
}

错误记录

 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.peppersoft.livescreen.Row.getEvent_name()' on a null object reference
        at com.peppersoft.livescreen.CustomAdapter.getView(CustomAdapter.java:67)
        at android.widget.AbsListView.obtainView(AbsListView.java:2347)
        at android.widget.ListView.makeAndAddView(ListView.java:1864)
        at android.widget.ListView.fillDown(ListView.java:698)
        at android.widget.ListView.fillFromTop(ListView.java:759)
        at android.widget.ListView.layoutChildren(ListView.java:1673)
        at android.widget.AbsListView.onLayout(AbsListView.java:2151)
        at android.view.View.layout(View.java:15679)
        at android.view.ViewGroup.layout(ViewGroup.java:5039)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
        at android.view.View.layout(View.java:15679)
        at android.view.ViewGroup.layout(ViewGroup.java:5039)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
        at android.view.View.layout(View.java:15679)
        at android.view.ViewGroup.layout(ViewGroup.java:5039)
        at android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:502)
        at android.view.View.layout(View.java:15679)
        at android.view.ViewGroup.layout(ViewGroup.java:5039)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
        at android.view.View.layout(View.java:15679)
        at android.view.ViewGroup.layout(ViewGroup.java:5039)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
        at android.view.View.layout(View.java:15679)
        at android.view.ViewGroup.layout(ViewGroup.java:5039)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
        at android.view.View.layout(View.java:15679)
        at android.view.ViewGroup.layout(ViewGroup.java:5039)
        at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5891)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
        at android.view.Choreographer.doCallbacks(Choreographer.java:580)
        at android.view.Choreographer.doFrame(Choreographer.java:550)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

0 个答案:

没有答案