gpt4 book ai didi

java - Android 将可点击文本设置为从一个 fragment 转到另一个 fragment

转载 作者:行者123 更新时间:2023-11-29 07:40:16 24 4
gpt4 key购买 nike

我需要做这样的事情。假设我有 2 个 fragment A 和 B。在 fragment A 中有一个可以点击的文本,当用户点击这个文本时,他可以转到 fragment B。This示例帮助我做到了,但我认为它不适用于 fragment 。所以请告诉我解决这个问题的方法。

public class myClaimsFragment extends Fragment {

TextView requestNewClaim;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

View newClaimRequest = inflater.inflate(R.layout.activity_my_claims, container, false);


SpannableString ss = new SpannableString("Request");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
Intent intent = new Intent(getActivity(),LoginActivity.class);
startActivity(intent);
}
};
ss.setSpan(clickableSpan , 0,ss.length() , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
requestNewClaim =(TextView) newClaimRequest.findViewById(R.id.requestHere);
requestNewClaim.setText(ss.toString());
requestNewClaim.setMovementMethod(LinkMovementMethod.getInstance());

return newClaimRequest;
}

}

布局 XML

        <LinearLayout
android:id="@+id/view2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical">



<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/requestHere"
android:clickable="true"
android:textSize="20dp"
android:textStyle="bold"
android:textColor="#000000"
android:layout_marginLeft="20dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"/>

</LinearLayout>

最佳答案

如果 LoginActivity 是 fragment 类,那么在 TextView 上使用 setOnClickListener 就可以了。但是对于 fragment 更改,您必须将 Intent 更改为 fragmentTransaction,

使用类似的东西,

textview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getFragmentManager().beginTransaction().replace(R.id.container, new LoginActivity() ).addToBackStack("").commit();
});

但是,如果你想使用 SpannableString 那么就这样做,

ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
getFragmentManager().beginTransaction().replace(R.id.container, new LoginActivity() ).addToBackStack("").commit();
}
};

在这里,R.id.container 是您的主要 Activity 布局的 fragment ,其中新 View 将被替换。

关于java - Android 将可点击文本设置为从一个 fragment 转到另一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30973303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com