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