Android에 들어가기 시작했습니다. 그저 절대 초보자입니다. 따라서 내 맞춤 GridAdapter 및 Parse SDK 문제를 해결할 수 있기를 바랍니다. Logcat은 그렇지 않습니다. 어떤 오류라도 보여 주지만 장치가 데이터를 표시하지 않고 계속 충돌합니다. 여기 안드로이드 - Parse Server SDK가있는 GridAdapter 문제
내 코드 [EDITED]입니다 : 내가 event_cell.xml 만든public class Home extends AppCompatActivity {
/* Views */
ProgressDialog progDialog;
/* Variables */
List<ParseObject> eventsArray = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
// ProgressDialog
progDialog = new ProgressDialog(this);
progDialog.setTitle(R.string.app_name);
progDialog.setMessage("Loading...");
progDialog.setIndeterminate(false);
progDialog.show();
// Call query
queryEvents();
}
// MARK: - QUERY EVENTS
public void queryEvents() {
ParseQuery<ParseObject> query = ParseQuery.getQuery(Configs.EVENTS_CLASS_NAME);
query.whereEqualTo(Configs.EVENTS_IS_PENDING, false);
query.orderByAscending(Configs.EVENTS_END_DATE);
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> objects, ParseException error) {
if (error == null) {
eventsArray = objects;
progDialog.dismiss();
// CUSTOM GRID ADAPTER
class GridAdapter extends BaseAdapter {
private List<ParseObject> objects;
private Context context;
public GridAdapter(FindCallback<ParseObject> context, List<ParseObject> objects) {
super();
this.context = (Context) context;
eventsArray = objects;
}
// CONFIGURE CELL
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
// Get layout from event_cell.xml
gridView = inflater.inflate(R.layout.event_cell, null);
// Get title
TextView titleTxt = (TextView) gridView.findViewById(R.id.titleTxt);
if (eventsArray.get(position).getString(Configs.EVENTS_TITLE) != null) {
titleTxt.setText(eventsArray.get(position).getString(Configs.EVENTS_TITLE).toString());
} else { titleTxt.setText("N/A"); }
} else { gridView = (View) convertView; }
return gridView;
}
@Override
public int getCount() {
if (eventsArray != null) {
return eventsArray.size();
}
return 0;
}
@Override
public Object getItem(int position) {
return eventsArray.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
}
// Init GridView and set its adapter
GridView eventsGrid = (GridView) findViewById(R.id.eventsGridView);
eventsGrid.setAdapter(new GridAdapter(this, eventsArray));
eventsGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(getApplicationContext(), ((TextView) v.findViewById(R.id.titleTxt)).getText(), Toast.LENGTH_SHORT).show();
}
});
// Error in query
} else {
Toast.makeText(getApplicationContext(), error.getMessage().toString(), Toast.LENGTH_LONG).show();
}
}
});
}
} //@end
, 나는 성공적으로 Home.java 때문에 구문 분석 SDK의 작품에 eventsArray를 기록했습니다 괜찮 으면, 필자는 데이터베이스에서 데이터를 수집 할 수 있습니다 (Parse Server에서 데이터를 검색하여 발생하는 문제 일 수 있음).
여기 내가 뭘 잘못하고 있니?
오류 로그를 제공해야합니다. 나는 생각하지 않는다. 공용 EventsGridAdapter (FindCallback findCallback, List eventsArray) { this.context = context; this.events = eventsArray; } 생성자에서 컨텍스트를 설정하지 않았습니다. –
ChunTingLin
감사합니다. Android Studio 콘솔에서 오류 로그를 얻으려면 어떻게 코딩해야합니까? Log.d() 만 알면 – cubycode
충돌이 발생하면 Android logcat에 오류 수준 로그가 표시됩니다. 예외 스택 추적과 예외 클래스 및 예외 메시지가 표시됩니다. – ChunTingLin