APP停止工作 - 碎片 [英] APP stop working - Fragment

查看:245
本文介绍了APP停止工作 - 碎片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建的Andr​​oid中的日期选择器。但不幸的是应用程序点击停止按钮时工作。这里是我的code。我是新与Android的发展。

fragment_1.java

 公共类fragment_1扩展片段{    私人的EditText txtJODate;
    私人DatePickerDialog txtDTJODate;
    私人SimpleDateFormat的日期格式;
    私人浏览视图。
    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑saveInstanceState){
        返回inflater.inflate(R.layout.fragment_tab1,集装箱,FALSE);    }    公共无效onClickDate(视图v){
        android.supporft.v4.app.DialogFragment newFragment =新DatePickerFragment();
        newFragment.show(getFragmentManager(),日期选择器);
    }}

DatePickerFragment.java

 公共类DatePickerFragment扩展DialogFragment
        实现DatePickerDialog.OnDateSetListener {
    @覆盖
    公共对话框onCreateDialog(捆绑savedInstanceState){
//使用当前日期作为选择器的默认日期
        最后的日历C = Calendar.getInstance();
        年整型= c.get(Calendar.YEAR);
        INT月= c.get(的Calendar.MONTH);
        INT天= c.get(Calendar.DAY_OF_MONTH);//创建DatePickerDialog的新实例,并将其返回
        返回新DatePickerDialog(getActivity(),这,年,月,日);
    }    @覆盖
    公共无效onDateSet(查看的DatePicker,年整型,诠释月,日整型){
        日历C = Calendar.getInstance();
        c.set(年,月,日);        SimpleDateFormat的SDF =新的SimpleDateFormat(YYYY-MM-DD);
        串formattedDate = sdf.format(c.getTime());
    }
}

这是我的布局

 <?XML版本=1.0编码=UTF-8&GT?;< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:方向=垂直
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:背景=#D9E5F2>    <的LinearLayout
        机器人:方向=垂直
        机器人:layout_width =match_parent
        机器人:layout_height =match_parent
        机器人:paddingLeft =16DP
        机器人:paddingRight =16DP
        >        <的EditText
            机器人:layout_width =match_parent
            机器人:layout_height =WRAP_CONTENT
            安卓的inputType =TEXT
            机器人:文字=@字符串/ txt_customer
            机器人:ID =@ + ID / txtCustomer/>        <按钮
            机器人:layout_width =match_parent
            机器人:layout_height =WRAP_CONTENT
            机器人:ID =@ + ID / txtDate
            安卓的onClick =onClickDate/>    < / LinearLayout中>< / LinearLayout中>

下面是我的logcat的:

  java.lang.IllegalStateException:找不到在活动课com.apptech_experts.appportal.fragment_main为的onClick处理程序上的视图类android.widget.Button与方法onClickDate(视图) ID'txtDate
        在android.view.View $ 1.onClick(View.java:3956)
        在android.view.View.performClick(View.java:4630)
        在android.view.View $ PerformClick.run(View.java:19339)
        在android.os.Handler.handleCallback(Handler.java:733)
        在android.os.Handler.dispatchMessage(Handler.java:95)
        在android.os.Looper.loop(Looper.java:157)
        在android.app.ActivityThread.main(ActivityThread.java:5335)
        在java.lang.reflect.Method.invokeNative(本机方法)
        在java.lang.reflect.Method.invoke(Method.java:515)
        在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1265)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
        在dalvik.system.NativeStart.main(本机方法)
 致:java.lang.NoSuchMethodException:onClickDate [类android.view.View]
        在java.lang.Class.getConstructorOrMethod(Class.java:472)
        在java.lang.Class.getMethod(Class.java:857)
        在android.view.View $ 1.onClick(View.java:3949)
在android.view.View.performClick(View.java:4630)
在android.view.View $ PerformClick.run(View.java:19339)
在android.os.Handler.handleCallback(Handler.java:733)
在android.os.Handler.dispatchMessage(Handler.java:95)
在android.os.Looper.loop(Looper.java:157)
在android.app.ActivityThread.main(ActivityThread.java:5335)
在java.lang.reflect.Method.invokeNative(本机方法)
在java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1265)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
在dalvik.system.NativeStart.main(本机方法)


解决方案

您已经使用

 安卓的onClick =onClickDate

您在xml文件按钮。

但你的java code不包含一个函数 onClickDate()。这就是你得到一个崩溃说的原因:

 找不到在活动课com.apptech_experts.appportal.fragment_main方法onClickDate(视图)

请在你的类中添加功能。

 公共无效onClickDate(视图v){
    //做一点事
}

的onClick 所以你得到的呢理念工作原理。

希望它帮助。

I'm creating a Date Picker in Android. But unfortunately the app stop working when clicking the button. Here's my code. I'm new with android development.

fragment_1.java

public class fragment_1 extends Fragment {

    private EditText txtJODate;
    private DatePickerDialog txtDTJODate;
    private SimpleDateFormat dateFormat;
    private View view;
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState){
        return inflater.inflate(R.layout.fragment_tab1, container, false);

    }

    public void onClickDate(View v){
        android.supporft.v4.app.DialogFragment newFragment = new DatePickerFragment();
        newFragment.show(getFragmentManager(), "datePicker");
    }

}

DatePickerFragment.java

public class DatePickerFragment extends DialogFragment
        implements DatePickerDialog.OnDateSetListener {


    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

// Create a new instance of DatePickerDialog and return it
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    @Override
    public void onDateSet(DatePicker view, int year, int month, int day) {
        Calendar c = Calendar.getInstance();
        c.set(year, month, day);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate = sdf.format(c.getTime());
    }
}

And this is my layout

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#D9E5F2">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        >

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text"
            android:text="@string/txt_customer"
            android:id="@+id/txtCustomer"  />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/txtDate"
            android:onClick="onClickDate"/>

    </LinearLayout>

</LinearLayout>

Here's my Logcat :

java.lang.IllegalStateException: Could not find a method onClickDate(View) in the activity class com.apptech_experts.appportal.fragment_main for onClick handler on view class android.widget.Button with id 'txtDate'
        at android.view.View$1.onClick(View.java:3956)
        at android.view.View.performClick(View.java:4630)
        at android.view.View$PerformClick.run(View.java:19339)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:157)
        at android.app.ActivityThread.main(ActivityThread.java:5335)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.NoSuchMethodException: onClickDate [class android.view.View]
        at java.lang.Class.getConstructorOrMethod(Class.java:472)
        at java.lang.Class.getMethod(Class.java:857)
        at android.view.View$1.onClick(View.java:3949)
            at android.view.View.performClick(View.java:4630)
            at android.view.View$PerformClick.run(View.java:19339)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:157)
            at android.app.ActivityThread.main(ActivityThread.java:5335)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
            at dalvik.system.NativeStart.main(Native Method)

解决方案

You have used

android:onClick="onClickDate"

for your button in xml file.

But your java code does not contain a function onClickDate(). That's the reason you are getting a crash saying:

Could not find a method onClickDate(View) in the activity class com.apptech_experts.appportal.fragment_main

Please add a function in your class.

public void onClickDate (View v){
    //do something
}

Refer onClick so you get the idea of how it works.

Hope it helps.

这篇关于APP停止工作 - 碎片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆