【问题标题】:ListView with 2 TextViews带有 2 个 TextView 的 ListView
【发布时间】:2015-09-29 11:33:56
【问题描述】:

我正在尝试使用 2 个 Textview 为每个项目发布特定消息,但是 ListView 接受 1 个适配器并显示该适配器提供的数据

屏幕截图显示已从数据库中检索数据并将其放入 de ListView 中,仅缺少小文本数据。

代码:

public class ReservationsActivity extends AppCompatActivity {    

List<String> subTextList = new ArrayList<>();
List<String> titleList = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_reservations);
    listReservations = (ListView)
    findViewById(R.id.listReservationsView);}

public void getReservations() {
        subTextList = new ArrayList<>();
        titleList = new ArrayList<>();
        titleAdapter = new ArrayAdapter<>(this, R.layout.row, R.id.title, titleList);
        subTextAdapter = new ArrayAdapter<>(this,R.layout.row,R.id.subText, subTextList);
        listReservations.setAdapter(subTextAdapter);
        listReservations.setAdapter(titleAdapter);

        AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... params) {
                SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ReservationsActivity.this);
                String accessToken = prefs.getString("accessToken", null);
                String web_adres = getString(R.string.web_adres);
                String ip_adres = getString(R.string.ip_adres);
                Ion.with(ReservationsActivity.this)
                        .load(web_adres + "/reservations?accessToken=" + accessToken)
                        .proxy(ip_adres, 8080)
                        .asJsonArray()
                        .setCallback(new FutureCallback<JsonArray>() {
                            @Override
                            public void onCompleted(Exception e, JsonArray result) {

                                jsonArray = result;
                                for (int i = 0; i < result.size(); i++) {
                                    JsonObject jsonObject = result.get(i).getAsJsonObject();
                                    JsonObject date = jsonObject.get("date").getAsJsonObject();
                                    JsonObject time = jsonObject.get("time").getAsJsonObject();
                                    String title = date.get("dayOfMonth").toString() + "/"
                                            + date.get("monthValue").toString() + "/"
                                            + date.get("year").toString();
                                    String subtext;
                                    if (time.get("id").getAsInt() == 1) {
                                        subtext = getString(R.string.morning);
                                        //imageInt = R.drawable.parking_morning;
                                    } else if (time.get("id").getAsInt() == 2) {
                                        subtext = getString(R.string.afternoon);
                                        //imageInt = R.drawable.parking_afternoon;
                                    } else if (time.get("id").getAsInt() == 3) {
                                        subtext = getString(R.string.day);
                                        //imageInt = R.drawable.parking_fullday;
                                    } else
                                        subtext = getString(R.string.day);


                                    titleAdapter.add(title);
                                    subTextAdapter.add(subtext);
                                    //TODO set Image per item
                                    //image.setImageResource(imageInt);
                                    titleAdapter.notifyDataSetChanged();
                                    subTextAdapter.notifyDataSetChanged();
                                }

                            }
                        });
                return null;
            }
        };
        task.execute();
    }

如何让它填充所有项目?

【问题讨论】:

    标签: java android android-listview android-ion


    【解决方案1】:

    以下内容可能对您有所帮助:

    • 您需要使自定义适配器扩展ArrayAdapterBaseAdapter 以实现您的观点。
    • 准备一个与您的要求相同的布局,即使用 2 个TextViews 和一个ImageView
    • 并且,在 getView 方法中根据您的要求填充数据。

    This 可能会在此过程中为您提供帮助。

    希望对你有帮助!!!

    【讨论】:

      【解决方案2】:

      您需要创建一个带有自定义视图/布局的自定义 ArrayAdapter,在您的案例中包含两个 textView,您可以查看我的 old post 以及用于创建自定义适配器的代码。

      告诉我我是否帮助过你和好的编程!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-04
        相关资源
        最近更新 更多