在众多教程和示例项目之后,我得到了以下代码,该代码应该在ListView中填充包含Line对象中多个值的行.
作为一个新手程序员,我不能为我的生活弄清楚我的代码在哪里失败.任何帮助将非常感激!
如果我遗漏了重要信息,请告诉我,我会更新这个问题.
在Fragment中启动它的代码:
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
Intent i = getActivity().getIntent();
if (i.getSerializableExtra("ChosenWorkorder") != null){
Workorder selectedWorkorder = (Workorder) i.getSerializableExtra("ChosenWorkorder");
ArticlesListAdapter articlesListAdapter = new ArticlesListAdapter(getActivity(), R.layout.articles_list_row, selectedWorkorder.GetAllLines());
ListView articlesList = (ListView) getActivity().findViewById(R.id.ArticlesList);
articlesList.setAdapter(articlesListAdapter);
}
}
Run Code Online (Sandbox Code Playgroud)
Custom ArrayAdapter:
public class ArticlesListAdapter extends ArrayAdapter<Line> {
private List<Line> lineList;
private Context context;
public ArticlesListAdapter(Context context, int textViewResourceId, List<Line> objects) {
super(context, textViewResourceId, objects);
this.lineList = objects;
this.context = context;
}
public int getCount() {
return lineList.size();
}
public Line getItem(int …Run Code Online (Sandbox Code Playgroud) 这似乎是一个常见的问题,通常通过添加正确的导入来解决.但就我而言,它似乎没有解决任何问题.我是一个相当新的编程,特别是在Android中,所以忍受我的愚蠢错误(如果适用).
我有以下导入和代码,但Eclipse一直说AdapterView.onItemClickListener无法解析为类型.任何帮助将非常感激.
import android.app.Activity;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public static class MainApplicationFragment extends Fragment {
private ArrayAdapter<String> listAdapter;
public MainApplicationFragment() {
}
private void PopulateWorkorderList() throws IOException {
StorageAccess access = new StorageAccess();
listAdapter = new ArrayAdapter<String>(getActivity(), R.layout.workorder_list_row);
for (Workorder WO : access.GetAllWorkorders()) {
listAdapter.add(WO.getWorkorderNumber().toString());
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) …Run Code Online (Sandbox Code Playgroud)