Я видел много ответов, в которых говорилось, что нужно использовать getResources().getString(R.string.coupon_1)
, чтобы получить строку из файла . xml и изменить его, но он продолжает показывать значение в strings. xml файл для меня вместо того, чтобы показывать строку в coupon1, coupon2 или coupon3.
Это часть моего метода с некоторыми вещами, которые я пробовал:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_coupon, container, false);
couponListTextView = view.findViewById(R.id.couponListTextView);
couponItem1TextView = view.findViewById(R.id.couponItem1TextView);
couponItem2TextView = view.findViewById(R.id.couponItem2TextView);
couponItem3TextView = view.findViewById(R.id.couponItem3TextView);
// coupon1 = "Is";
// coupon2 = "this";
// coupon3 = "working?";
//coupon1 = getResources().getString(R.string.coupon_1);
coupon1 = "Is";
couponItem1TextView.setText(coupon1);
//coupon2 = getResources().getString(R.string.coupon_2);
coupon2 = "this";
couponItem2TextView.setText(coupon2);
//coupon3 = getResources().getString(R.string.coupon_3);
coupon3 = "working?";
couponItem3TextView.setText(coupon3);
CouponRequest couponRequest = new CouponRequest(coupon1, coupon2, coupon3, responseListener, errorListener);
RequestQueue queue = Volley.newRequestQueue(getActivity().getApplicationContext());
queue.add(couponRequest);
return inflater.inflate(R.layout.fragment_coupon, container, false);
}
Это мои объявления в строках. xml:
<string name="coupon_1">No coupon</string>
<string name="coupon_2">No coupon</string>
<string name="coupon_3">No coupon</string>
Это мои объявления TextView в фрагменте:
<TextView
android:id="@+id/couponItem1TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/couponListTextView" />
<TextView
android:id="@+id/couponItem2TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="@string/coupon_2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/couponItem1TextView" />
<TextView
android:id="@+id/couponItem3TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="@string/coupon_3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/couponItem2TextView" />
Любая помощь будет принята с благодарностью.
Редактировать: строки, которые я здесь использую, предназначены для тестирования приложения. Мне действительно нужно иметь возможность писать, используя строку, значение которой определяется во время выполнения.
Редактировать: я понял это. Мне просто нужно было вернуть представление вместо создания нового экземпляра View.