十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
郑州app开发Fragment之间进行通信实例。
为龙山等地区用户提供了全套网页设计制作服务,及龙山网站建设行业解决方案。主营业务为网站制作、成都网站设计、龙山网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
布局代码主要展示一个,就是activity_main.xml
{LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity" }
{LinearLayout
android:id="@+id/ll_left"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal" /}
{LinearLayout
android:id="@+id/ll_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal" /}
{/LinearLayout}
布局代码一共三个一个是main另外两个没有什么特别,主要是一个textview,做信息展示用。在这里展示main主要是因为布局都是LinearLayout,用约束布局,老显示不了Fragment的信息。
下面是java代码
MainActivity.java
package cn.xhhkj.videoview;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import android.app.FragmentTransaction;
import android.media.Mediaplayer;
import android.os.bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Imagebutton;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "结果是";
@Override
protected void onCreate(bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager manager = getSupportFragmentManager();
androidx.fragment.app.FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.ll_left, new LeftFragment(),"left");
transaction.replace(R.id.ll_right, new RightFragment(),"right");
transaction.commit();
}
}
LeftFragment.java
package cn.xhhkj.videoview;
import android.os.bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.button;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
public class LeftFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_left, null);
button btn_call = view.findViewbyId(R.id.btn_call);
btn_call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RightFragment right = (RightFragment) getActivity().getSupportFragmentManager().findFragmentbyTag("right");
right.changeText("hello");
}
});
return view;
}
}
RightFragment.java
package cn.xhhkj.videoview;
import android.os.bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
public class RightFragment extends Fragment {
private TextView text;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_right, null);
text = view.findViewbyId(R.id.tv_text);
return view;
}
public void changeText(String s){
text.setText(s);
}
}
总结,作为这个实例的最重要的一点在这句话 RightFragment right = (RightFragment) getActivity().getSupportFragmentManager().findFragmentbyTag("right");尤其是后半句getActivity().getSupportFragmentManager().findFragmentbyTag("right");这句话,就是从这个Fragment跟另外一个Fragment之间的通信。