我正在使用 ListView 来显示从我的数据库中检索到的数据,它假设以前可以工作,但它突然不显示了。通常它应该显示这样的东西(来自其他项目的屏幕截图):发布我的所有代码:public class MainActivity extends AppCompatActivity {private TextView mTextMessage;String[] dataDetail;ArrayList<dataDetail> allDetail = new ArrayList<>();ListView detailList;final Context context = this;final int min = 0;final int max = 10;final int random = new Random().nextInt((max - min) + 1) + min;int score = 0;private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.navigation_home: mTextMessage.setText(R.string.title_home); return true; case R.id.navigation_dashboard: mTextMessage.setText(R.string.title_dashboard); return true; } return false; }};@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); detailList = findViewById(R.id.dataView); mTextMessage = (TextView) findViewById(R.id.message); BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); new GetData().execute();}private class GetData extends AsyncTask<Void, Void, ArrayList<dataDetail>> { protected ArrayList<dataDetail> doInBackground(Void... voids) { HttpURLConnection urlConnection; InputStream in = null; try { URL url = new URL("http://10.0.2.2:8080/projectServer/DataDetailDB?getdata=true"); urlConnection = (HttpURLConnection) url.openConnection(); in = new BufferedInputStream(urlConnection.getInputStream()); } catch (IOException e) { e.printStackTrace(); }
2 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
由于您使用的是默认值ArrayAdapter
,因此您正在渲染toString()
您的dataDetail
班级。您至少有以下选择:
定义自定义
toString()
以dataDetail
呈现您需要的信息。就像是:@Override public String toString() { return "Name:" + carName; }
为了显示汽车名称。
定义并使用自定义适配器,您可以在其中使用自定义视图持有者来呈现所需的数据。如果您使用的是
RecyclerView
.你也可以扩展
ArrayAdapter
。有关更多详细信息,请参阅此答案。
我建议将 aRecyclerView
与自定义适配器一起使用,而不是 ,与此处ListView
介绍的类似。通过这种方式,您可以获得很大的灵活性,并且您的应用程序将能够以有效的方式呈现大量元素。在这里看到两者之间的一个很好的比较。
精慕HU
TA贡献1845条经验 获得超8个赞
dataDetail tData = new dataDetail(customerName, carName, appointmentDate, email, issueDescribe, timeForJob, costForJob, reliableOnCar, distanceJob, finalScore); allDetail.add(tData.getCustomerName());
arrya 适配器仅使用字符串类型的数组列表,因此它将 tdata 作为字符串放入 allDetails
添加回答
举报
0/150
提交
取消