【问题标题】:Send info between tabs (EditText to a TextView)在选项卡之间发送信息(EditText 到 TextView)
【发布时间】:2021-07-10 15:41:16
【问题描述】:

大家好,我正在尝试做一些我觉得很简单但我非常喜欢的事情。

有 2 个片段用制表符分隔。一个有一个按钮和 2 个 editText,另一个有一个文本视图,我想在其中显示修改。我的问题是,一旦我点击按钮,它就会崩溃,我不知道为什么。

我希望你们能帮助我,如果我的程序有问题,我很抱歉。

这里是带有edittext +按钮的Java代码:

EditText tituloET, lugarET;
TextView tituloTV, lugarTV;
Button asignarTL;


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

    tituloET = view.findViewById(R.id.tituloET);
    lugarET = view.findViewById(R.id.lugarET);
    tituloTV = view.findViewById(R.id.tituloTV);
    lugarTV = view.findViewById(R.id.lugarTV);
    asignarTL = view.findViewById(R.id.asignarTL);

    asignarTL.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            if (tituloTV.getText().toString().equals("")) {
                tituloTV.setText("Titulo del evento: " + tituloET.getText().toString());
            } else {
                tituloTV.setText("");
            }

            if (lugarTV.getText().toString().equals("")) {
                lugarTV.setText("Lugar del evento: " + lugarET.getText().toString());
            } else {
                lugarTV.setText("");
            }
        }
    });


    return view;

}

现在有TextView,你可以看到里面已经有一张地图,这部分一切正常,我唯一的问题是一旦我按下按钮就会崩溃:

SupportMapFragment mapFragment;
private GoogleMap mMap;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.evento_fragment, container, false);
    mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
    if (mapFragment == null) {
        FragmentManager fm = getFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        mapFragment = SupportMapFragment.newInstance();
        ft.replace(R.id.map, mapFragment).commit();
    }
    mapFragment.getMapAsync(this);

    return view;
}

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    LatLng sydney = new LatLng(-34, 151);
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));

}

public void onResume() {
    super.onResume();
}

【问题讨论】:

  • > 我的问题是,一旦我点击按钮,它就会崩溃,我不知道为什么。当你发生崩溃时。您应该将堆栈跟踪作为问题的一部分发布。还要发布你的类的完整定义,这样我们就可以看到哪个类是什么以及在哪里定义了东西。

标签: java android-studio android-fragments tabs android-edittext


【解决方案1】:

有 2 个片段用制表符分隔。一个有一个按钮和两个 editText,另一个有一个文本视图,我想在其中显示修改。

你说你有两个片段,一个带有EditTexts,一个带有TextViews。

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

    tituloET = view.findViewById(R.id.tituloET);
    lugarET = view.findViewById(R.id.lugarET);
    tituloTV = view.findViewById(R.id.tituloTV);
    lugarTV = view.findViewById(R.id.lugarTV);
    asignarTL = view.findViewById(R.id.asignarTL);

您的代码表明您正在尝试访问 one 片段中的 EditTexts 和 TextViews。


您需要将数据从一个片段传递到另一个片段,而不是尝试访问一个片段中的所有视图。

请阅读与 Fragments 通信的文档。

https://developer.android.com/guide/fragments/communicate

【讨论】:

    猜你喜欢
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多