Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 中标日期';t在我指定的文本视图中显示_Android - Fatal编程技术网

Android 中标日期';t在我指定的文本视图中显示

Android 中标日期';t在我指定的文本视图中显示,android,Android,所以我在这里看了很多问题,一直在寻找答案,但毫无结果 我的问题是textView:myDateTimeTextView中没有显示任何内容。 我希望显示当前日期 代码如下: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (sa

所以我在这里看了很多问题,一直在寻找答案,但毫无结果

我的问题是textView:myDateTimeTextView中没有显示任何内容。 我希望显示当前日期

代码如下:

   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }
}

public class currentDateTime extends AsyncTask<Object, Void, String>{
    protected String doInBackground(Object... arg0) {
        TextView myDateTextView = (TextView)findViewById(R.id.myDateTextView);
        String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
        myDateTextView.setText(currentDateTimeString);
        String Format = "EEEE, MMMM dd, YYYY";
        Date today = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(Format, Locale.ENGLISH); System.err.format("%30s %s\n", Format, sdf.format(today));

    return currentDateTimeString;
    }
    }
这是LogCat

06-14 07:26:15.483:D/gralloc_金鱼(856):未检测到GPU仿真的仿真器。
06-14 07:26:16.173:W/dalvikvm(856):threadid=11:线程退出时出现未捕获异常(组=0x41465700)
06-14 07:26:16.203:E/AndroidRuntime(856):致命异常:AsyncTask#1
06-14 07:26:16.203:E/AndroidRuntime(856):java.lang.RuntimeException:执行doInBackground()时出错
06-14 07:26:16.203:E/AndroidRuntime(856):在android.os.AsyncTask$3.done(AsyncTask.java:299)
06-14 07:26:16.203:E/AndroidRuntime(856):在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
06-14 07:26:16.203:E/AndroidRuntime(856):在java.util.concurrent.FutureTask.setException(FutureTask.java:219)
06-14 07:26:16.203:E/AndroidRuntime(856):在java.util.concurrent.FutureTask.run(FutureTask.java:239)
06-14 07:26:16.203:E/AndroidRuntime(856):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
06-14 07:26:16.203:E/AndroidRuntime(856):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-14 07:26:16.203:E/AndroidRuntime(856):在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-14 07:26:16.203:E/AndroidRuntime(856):在java.lang.Thread.run(Thread.java:841)
06-14 07:26:16.203:E/AndroidRuntime(856):由以下原因引起:java.lang.IllegalArgumentException:未知模式字符“Y”
06-14 07:26:16.203:E/AndroidRuntime(856):位于java.text.simpleDataFormat.validateFormat(simpleDataFormat.java:264)
06-14 07:26:16.203:E/AndroidRuntime(856):在java.text.simpleDataFormat.validatePattern(simpleDataFormat.java:319)
06-14 07:26:16.203:E/AndroidRuntime(856):位于java.text.simpleDataFormat.(simpleDataFormat.java:365)
06-14 07:26:16.203:E/AndroidRuntime(856):在com.mikitz.baalpha1blank.MainActivity$currentDateTime.doInBackground(MainActivity.java:49)
06-14 07:26:16.203:E/AndroidRuntime(856):位于com.mikitz.baalpha1blank.MainActivity$currentDateTime.doInBackground(MainActivity.java:1)
06-14 07:26:16.203:E/AndroidRuntime(856):在android.os.AsyncTask$2.call(AsyncTask.java:287)
06-14 07:26:16.203:E/AndroidRuntime(856):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-14 07:26:16.203:E/AndroidRuntime(856):。。。4更多
06-14 07:26:18.983:I/编舞(856):跳过36帧!应用程序可能在其主线程上做了太多工作。

06-14 07:26:20.454:I/进程(856):发送信号。PID:856 SIG:9

在最后一个中的
onCreate()
方法中添加此行:

new currentDateTime().execute();
还可以使用以下代码在
AsynTask
类中添加
onpostecute()
方法

protected void onPostExecute(String result) {

     myDateTextView.setText(result);

} 

请记住从
doInbackGround()
中删除
myDateTextView.setText()
,这将导致异常

您需要在
onPostExecute()
方法中更新UI

protected void onPostExecute(String result) {
 myDateTextView.setText(result);
} 
您可以在
onCreate()
上调用
AsyncTask
,就像

new currentDateTime().execute();

在onCreate()中这样调用异步任务

在调用onCreate()中初始化文本视图之前

myDateTextView=(TextView)findViewById(R.id.myDateTextView)

更改公共类currentDateTime扩展异步任务


您不必使用asyncTask。您可以尝试这样做:

@Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
            .add(R.id.container, new PlaceholderFragment()).commit();
    }

    Calendar calendar = Calendar.getInstance();
    DateFormat format = new SimpleDateFormat("EEEE, MMMM dd, YYYY");

    TextView myDateTextView = (TextView)findViewById(R.id.myDateTextView);
    String currentDateTimeString = format.format(calendar.getTime());
    myDateTextView.setText(currentDateTimeString);

    }
你也做错了什么。变量名为“Format”,这是错误的,因为这是一个类名。您应该将其更改为“格式”


我尝试了你的方法,但我收到错误“calendar无法解析”,即使在导入
java.util.calendar
@Mikitz06对不起,我错了,我编辑了答案,add calendar calendar=calendar.getInstance();到你的代码,不起作用?发生了什么事?如果它正在崩溃,请张贴日志。并尝试移动
TextView myDateTextView=(TextView)findViewById(R.id.myDateTextView)
setContentView(R.layout.your_layout)
实现我的代码并放置logcat之后,我就能够得到情况。请参见编辑2了解实现的logcat
new currentDateTime().execute();
new currentDateTime().execute();
public class currentDateTime extends AsyncTask<Void, Void, String>  // as you're not passing anything while calling AsyncTask.
protected void onPostExecute(String result) {
 myDateTextView.setText(result);
} 
@Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
            .add(R.id.container, new PlaceholderFragment()).commit();
    }

    Calendar calendar = Calendar.getInstance();
    DateFormat format = new SimpleDateFormat("EEEE, MMMM dd, YYYY");

    TextView myDateTextView = (TextView)findViewById(R.id.myDateTextView);
    String currentDateTimeString = format.format(calendar.getTime());
    myDateTextView.setText(currentDateTimeString);

    }
String Format = "EEEE, MMMM dd, YYYY";
String format = "EEEE, MMMM dd, YYYY";