Как я могу сделать два текстовых блока в listView, который первый в левом выравнивании и второй в правом? - PullRequest
0 голосов
/ 03 июня 2019

Как я могу установить два текстовых блока в listView, первый из которых слева, а другой справа?Я пытался создать новый макет с двумя textViews.Но я не знаю, как я могу связать textViews с listView и как я могу установить текст на textViews.Кто-нибудь может мне помочь?

Я хотел бы иметь такой список

image

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

1) Вы должны использовать RecyclerView вместо listView, а для recyclerView вы можете добиться того, чего хотите, с помощью декоратора предметов.2) Но если вам нужно использовать ListView (что является менее вероятным случаем), вы можете сделать это, проверив положение элемента списка и установив соответствующее поле для макета, который не рекомендуется.3) Также есть другой способ добиться этого, который заключается в использовании различных XML-файлов ресурсов макета, но я бы не стал использовать последние два варианта.Я бы предпочел первое.

0 голосов
/ 03 июня 2019

Предполагая, что у вас есть список и ваш макет с этими двумя текстовыми представлениями готов, просто используйте этот адаптер и установите для этого адаптера режим повторного просмотра операции.дайте мне знать, если у вас возникнут проблемы

 public class CountryCodeAdapter extends RecyclerView.Adapter<CountryCodeAdapter.ViewHolder> {

private CountryCodeActivity activity;
ArrayList<CountryCodeModel> list = new ArrayList<>();

int selected_pos = 0;

public CountryCodeAdapter(CountryCodeActivity activity, ArrayList<CountryCodeModel> list) {
    this.activity = activity;
    this.list = list;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View rootView = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_country_listing, parent, false);
    return new ViewHolder(rootView);
}

@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {

    holder.tv_row_CountryCodeActivity_countrycode.setText(list.get(holder.getAdapterPosition()).getDial());
    holder.tv_row_CountryCodeActivity_countryname.setText(list.get(holder.getAdapterPosition()).getName());

    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.putExtra("country_code", list.get(holder.getAdapterPosition()).getDial());
            activity.setResult(activity.RESULT_OK, intent);
            activity.finish();
        }
    });
}

@Override
public int getItemCount() {
    return list.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {

    TextView tv_row_CountryCodeActivity_countryname,
            tv_row_CountryCodeActivity_countrycode;

    public ViewHolder(View itemView) {
        super(itemView);
        tv_row_CountryCodeActivity_countryname = itemView.findViewById(R.id.tv_row_CountryCodeActivity_countryname);
        tv_row_CountryCodeActivity_countrycode = itemView.findViewById(R.id.tv_row_CountryCodeActivity_countrycode);

    tv_row_CountryCodeActivity_countryname.setTypeface(AppClass.Lato_Regular);
        tv_row_CountryCodeActivity_countrycode.setTypeface(AppClass.Lato_Regular);

    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...