【问题标题】:Please help me. Error display when use Intent with Fragment请帮我。将 Intent 与 Fragment 一起使用时显示错误
【发布时间】:2022-09-27 14:49:33
【问题描述】:

enter image description here[class PingTool : Fragment() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val inte: Intent = Intent(requireContext(), PingActivity::class.java)
    startActivity(inte)
}][1]
  • 请编辑您的问题并将错误消息和堆栈跟踪粘贴到问题中。
  • 它不显示错误消息,但在打开 Activity 时,布局被最小化。这是在谷歌上更新的图像:photos.app.goo.gl/zWUok3CPv9UVfZbT7
  • 如果您遇到布局问题,那么您应该编辑您的问题并将布局文件 (XML) 粘贴到您的问题中。如果没有任何细节,我们如何为您提供帮助?
  • 嗨大卫瓦瑟,这是你的布局。如果我使用 onCreateView 则布局正常但功能不起作用,它只能查看。如果我使用 onCreate ,则会收到错误的图片已上传。
  • 你的问题没有多大意义。你展示了来自FragmentonCreate() 方法。此方法正在启动另一个Activity。您没有显示任何布局文件 (XML),也没有说明 Activity 正在显示什么。通常,无论如何,您都不应该从FragmentonCreate() 启动Activity,因为Fragment 可以随时创建,这与@987654332 何时(或是否)无关@ 显示在屏幕上。请提供更多详细信息并更具体地说明您遇到的问题。

标签: android kotlin android-intent fragment


【解决方案1】:
public class PingActivity extends Fragment {
private TextView mLog;
private PingRunnable mPingRunnable;

public static Network getNetwork(final Context context, final int transport) {
    final ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    for (Network network : connManager.getAllNetworks()) {
        NetworkCapabilities networkCapabilities = connManager.getNetworkCapabilities(network);
        if (networkCapabilities != null &&
                networkCapabilities.hasTransport(transport) &&
                networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)) {
            return network;
        }
    }
    return null;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_ping, container, false);
    mLog = view.findViewById(R.id.log);
    final EditText address = view.findViewById(R.id.address);
    final CheckBox wifi = view.findViewById(R.id.wifi);
    final RadioGroup ipRadioGroup = view.findViewById(R.id.ipGroup);

    view.findViewById(R.id.ping);
    view.setOnClickListener(view1 -> {
        if (mPingRunnable != null) {
            mPingRunnable.cancel();
        }

        final Class<? extends InetAddress> inetClass;
        final int radioId = ipRadioGroup.getCheckedRadioButtonId();
        if (radioId == R.id.ipv6) {
            inetClass = Inet6Address.class;
        } else {
            if (radioId == R.id.ipv4) {
                inetClass = Inet4Address.class;
            } else inetClass = InetAddress.class;
        }
        AsyncTask.SERIAL_EXECUTOR.execute(mPingRunnable =
                new PingRunnable(address.getText().toString(), wifi.isChecked(), inetClass));
    });
    return view;
}
/**
 * Attempts to get an IPv6 address
 */

static InetAddress getInetAddress(final String host, Class<? extends InetAddress> inetClass) throws UnknownHostException {
    final InetAddress[] inetAddresses = InetAddress.getAllByName(host);
//    InetAddress dest = null;
    for (final InetAddress inetAddress : inetAddresses) {
        if (inetClass.equals(inetAddress.getClass())) {
            return inetAddress;
        }
    }
    throw new UnknownHostException("Hi! I Could not find IP address of type " + inetClass.getSimpleName());
}

class PingRunnable implements Runnable {
    final private StringBuilder mSb = new StringBuilder();
    final private String mHost;
    final private boolean mWifi;
    final private Class<? extends InetAddress> mInetClass;

    private Ping mPing;

    final private Runnable textSetter = new Runnable() {
        @Override
        public void run() {
            mLog.setText(mSb.toString());
        }
    };

    public PingRunnable(final String host, final boolean wifi, final Class<? extends InetAddress> inetClass) {
        mHost = host;
        mWifi = wifi;
        mInetClass = inetClass;
    }

    public void run() {
        try {
            final InetAddress dest;
            if (mInetClass == InetAddress.class) {
                dest = InetAddress.getByName(mHost);
            } else {
                dest = getInetAddress(mHost, mInetClass);
            }
            appendMessage("Pinging " + dest.getHostAddress() + " with 32 bytes of data", null);
            Ping ping = new Ping(dest, new Ping.PingListener() {
                @Override
                public void onPing(final long timeMs, final int count) {
                    appendMessage("Reply from " + dest.getHostAddress() + ": " + "bytes=32 " + "time=" + timeMs + " TTL=126 ", null);
                }
                @Override
                public void onPingException(final Exception e, final int count) {
                    appendMessage("#" + count  + " ip: " + dest.getHostAddress(), e);
                }

            });
            if (mWifi) {
                final Network network = getNetwork(requireContext(), NetworkCapabilities.TRANSPORT_WIFI);
                if (network == null) {
                    throw new UnknownHostException("Failed to find a WiFi Network");
                }
                ping.setNetwork(network);
            }
            mPing = ping;
            ping.run();
            appendMessage("Ping statistics for " + dest.getHostAddress() +":", null);
            appendMessage("   Packets: " + mPing.getCount() + ", Received: " + mPing.getCount() + ", Lost: 0 (0% loss)", null);
        } catch(UnknownHostException e) {

            appendMessage("Unknown host", e);
        }
    }

    public void cancel() {
        if (mPing != null) {
            mPing.setCount(0);
        }
    }

    private void appendMessage(final String message, final Exception e) {
        Log.d("Ping", message, e);
        mSb.append(message);
        if (e != null) {
            mSb.append(" Error: ");
            mSb.append(e.getMessage());
        }
        mSb.append('\n');
        requireActivity().runOnUiThread(textSetter);
    }
}

}

【讨论】:

    猜你喜欢
    • 2021-11-20
    • 1970-01-01
    • 2015-04-22
    • 2014-10-24
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 2020-03-25
    • 2019-11-19
    相关资源
    最近更新 更多