当前位置: 首页 > 知识库问答 >
问题:

使用android无法在文本视图中获取正确的日期

西门洛城
2023-03-14

我有两个按钮,第一个是下一个,另一个是上一个。我想在文本视图中显示一个日期作为月份的日期。文本视图中应该看到的日期是该周的第一天。

当按下下一个按钮时,它必须显示下一周开始的第一天,而按下上一个按钮时,它必须显示上一周开始的第一天。

代码如下。

我对Android系统比较熟悉。

package com.example.child;

import java.text.SimpleDateFormat;
import java.util.Calendar;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends ActionBarActivity {

    Button bn;
    Button bp;
     Calendar c=Calendar.getInstance();
       int w = c.get(Calendar.WEEK_OF_YEAR);



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

        Button bn=(Button)findViewById(R.id.button1);
        Button bp=(Button)findViewById(R.id.button2);
        final EditText ed=(EditText)findViewById(R.id.editText1);



         c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
         SimpleDateFormat mDF = new SimpleDateFormat("dd MMMM");
            String printDate = mDF.format(c.getTime());
            c.add(Calendar.DAY_OF_MONTH, 6);
            String printDate2 = mDF.format(c.getTime());

            System.out.println(printDate + " >> " + printDate2);
           ed .setText(printDate + " >> " + printDate2);


        bn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                w++;

                String ss=g(w);
                ed.setText(ss);

            }

            private String g(int weekfromtoday) {
                // TODO Auto-generated method stub

                System.out.println(""+weekfromtoday);

                Calendar m=Calendar.getInstance();
                m.set(Calendar.DAY_OF_WEEK,m.SUNDAY);
                m.set(m.DAY_OF_YEAR,m.get(Calendar.WEEK_OF_YEAR)+weekfromtoday);
                m.add(Calendar.DAY_OF_MONTH,+6);
            SimpleDateFormat s=new SimpleDateFormat("dd MMMM");
            String p=s.format(m.getTime());
        System.out.println(p);
         m.add(Calendar.DAY_OF_MONTH, 6);
            String printDate2 = s.format(m.getTime());
            ed.setText(""+printDate2);
            return p + " >> " + printDate2; 



            }
        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

共有1个答案

欧阳正卿
2023-03-14

步骤1:拥有全局日历对象:

private Calendar calendar;

第二步:函数获取下周的开始:

public void getNextWeek() {
        calendar.add(Calendar.WEEK_OF_YEAR, 1);
        String dateString = getFormattedDate(calendar);

    }

步骤3:获取前一周开始的函数:

public void getPreviousWeek() {
            calendar.add(Calendar.WEEK_OF_YEAR, -1);
            String dateString = getFormattedDate(calendar);

        }

将日历对象转换为String的函数:

 public String getFormattedDate(Calendar cal){
          SimpleDateFormat format1 = new SimpleDateFormat("dd-mm-yyyy");
          String formatted = format1.format(cal.getTime());
          return formatted;
    }
 类似资料:
  • 问题内容: 我是一个新用户,正在尝试此命令。 我得到这个错误 我知道这似乎是一个琐碎的问题,但我坚持下去。 问题答案: 如果编译和安装的代码是 不是 在分支(签出由默认值),但只有在该回购的分支,尝试: 然后重试编译。

  • 我在我的项目中实现了一个calendarview,我可以获取月份、月份和年份,但我找不到任何方法来获取星期几,我的代码是这样的: 当我在日历中选择一天时,我需要得到一周的时间,我试图得到答案,但我找不到。 对不起我的英语。

  • 我试图获取文档的URI时出错。"content://com.android.providers.downloads.documents/document/158“这是我得到的URI。我无法从这个URI获得路径。在这里,我共享了我的代码。

  • 请读到最后(我在最后提到console.log) 模型: 收藏: 观点: 在我们的应用程序中。js 服务器输出 我还尝试从模型中删除所有属性防御。还是不行。返回值内容类型为:application/json(已验证),并且是有效的json。 我读过:Backbonejs集合长度总是零 但尽管console.log,显示0长度,也: 不工作! 我还读了Did主干收集自动解析加载的数据 非常感谢 更新

  • 我正在碎片中使用CalendarView。我已经添加了事件。我必须强调一个我添加了事件的日期。无法获得任何api突出显示在默认日历视图中的特定日期。 任何帮助都很感激!!

  • 我想将文本从软键盘输入到popupwindow中的Edittext小部件,但我遇到了一些问题。我的活动是一个游戏卡桌,并在上面启用一些动画。在游戏表中,有一些按钮。如果玩家点击某个按钮,将显示一个弹出窗口。问题是播放器无法在弹出窗口中输入文本到Edittext。我发现了一些类似的问题,最流行的建议是: 使用此设置,我可以正常输入Edittext。但是,这将阻止主UI线程并导致停止游戏表中的动画。我