【问题标题】:SetText of TextView using String Array in a Fragment class在片段类中使用字符串数组的 TextView 的 SetText
【发布时间】:2018-08-05 06:41:40
【问题描述】:

我正在尝试在像 Duolingo 这样的 cardView 中制作卡片,我在网上找到了代码,我正在尝试根据我的需要编辑该代码。问题是我不知道如何使用 String 的数组列表并在每张卡片中更改其文本。 我希望根据我创建的数组列表更改每张卡片中的文本。问题是我无法从array to textview 和 setText 中获取"position"。下面是我的卡片片段代码。

public class CardFragment extends Fragment {

    private CardView cardView;

    public static Fragment getInstance(int position) {
        CardFragment f = new CardFragment();
        Bundle args = new Bundle();
        args.putInt("position", position);
        f.setArguments(args);

        return f;
    }


    public static String[] line1 ={
            "Card no 1",
            "Card no 2",
            "Card no 3",
            "Card no 4",
            "Card no 5",
            "Card no 6",

    };

    public static String[] line2 = {
            "This is card number 1",
            "This is card number 2",
            "This is card number 3",
            "This is card number 4",
            "This is card number 5",
            "This is card number 6",
    };

    @SuppressLint("DefaultLocale")
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.item_viewpager, container, false);

        cardView = (CardView) view.findViewById(R.id.cardView);
        cardView.setMaxCardElevation(cardView.getCardElevation() * CardAdapter.MAX_ELEVATION_FACTOR);

        TextView title = (TextView) view.findViewById(R.id.title);
        Button button = (Button)view.findViewById(R.id.button);
        TextView description = (TextView) view.findViewById(R.id.description);

        // how to setText here from the above array list.
        title.setText(line1[position]) // this is giving me error.



        title.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity(), "This is Card no " + getArguments().getInt("position"), Toast.LENGTH_SHORT).show();
            }
        });



        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getActivity(), "Button in Card " + getArguments().getInt("position")
                        + "Clicked!", Toast.LENGTH_SHORT).show();
            }
        });

        return view;
    }

    public CardView getCardView() {
        return cardView;
    }


}

【问题讨论】:

  • 在上面的片段中声明了 position int 变量?
  • 我之前已经这样做了,但我的问题仍然没有得到解决?请帮忙,我知道我错过了一些重要的事情。
  • 请把 int position = getArguments().getInt("position"); 放在出现错误的行上方并检查。
  • @Nirav Bhavsar,非常感谢,你拯救了我的一天!上帝保佑你!

标签: android android-fragments textview settext cardview


【解决方案1】:

在您的代码中,您尚未设置和分配int 位置变量,因此请在上面出现错误的行添加以下代码

int position = getArguments().getInt("position");

// how to setText here from the above array list.
title.setText(line1[position]) // this is giving me error.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多