我需要做这样的事情。假设我有 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/