Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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
Java 铰孔时间视图_Java_Android - Fatal编程技术网

Java 铰孔时间视图

Java 铰孔时间视图,java,android,Java,Android,您好,我是android开发新手,我需要在我的应用程序中获得帮助,以便在上面的文本视图中查看下一次事件的txt_剩余时间。在文本视图中,我得到了“四” public void getTime(){ //使用位置API检索lat、lng 双纬度=31.952162; 双经度=35.233154; 双时区=(Calendar.getInstance().getTimeZone()) .getOffset(Calendar.getInstance().getTimeInMillis()) / (100

您好,我是android开发新手,我需要在我的应用程序中获得帮助,以便在上面的文本视图中查看下一次事件的txt_剩余时间。在文本视图中,我得到了“四”

public void getTime(){
//使用位置API检索lat、lng
双纬度=31.952162;
双经度=35.233154;
双时区=(Calendar.getInstance().getTimeZone())
.getOffset(Calendar.getInstance().getTimeInMillis())
/ (1000 * 60 * 60);
祈祷时间=新的祈祷时间();
祈祷。设定时间格式(祈祷。时间24);
祈祷。setCalcMethod(祈祷。麦加);
祈祷。塞塔斯库里斯蒂克(祈祷。沙菲);
祈祷。设置调整高度(祈祷。基于角度);
int[]偏移量={3,0,0,0,6,6,7};/{Fajr,Sunrise,Dhuhr,Asr,Sunset,Maghrib,Isha}
祈祷。曲调(抵消);
现在日期=新日期();
Calendar cal=Calendar.getInstance();
校准设定时间(现在);
ArrayList prayerTimes=祈祷。getPrayerTimes(校准,纬度,
经度(时区);
ArrayList-prayerNames=prayers.getTimeNames();
String[]mylistName=新字符串[prayerNames.size()];
mylistName=prayerNames.toArray(mylistName);
String[]mylistTime=新字符串[prairtimes.size()];
mylistTime=祈祷时间。toArray(mylistTime);
最终文本视图txt\u reming=(文本视图)findViewById(R.id.current\u time\u视图);
最终字符串[]finalMylistTime=mylistTime;
LocalTime[]myTimes=新的LocalTime[]{
parse(finalMylistTime[0],时间格式化程序),//fajer
parse(finalMylistTime[2],时间格式化程序),//th
parse(finalMylistTime[3],时间格式化程序),//asser
parse(finalMylistTime[4],时间格式化程序),//magreb
parse(finalMylistTime[6],TIME\u格式化程序)//ishaa
};
LocalTime=LocalTime.now();
if(time.isBefore(myTimes[1]))
{
txt_remaing.setText(“一”);
}
if(time.isBefore(myTimes[2]))
{
txt_remaing.setText(“两个”);
}
if(time.isBefore(myTimes[3]))
{
txt_remaing.setText(“三”);
}
if(time.isBefore(myTimes[4]))
{
txt_remaing.setText(“四”);
}
列表视图=(ListView)findViewById(R.id.listView2);
lviewAdapter=新的ListViewAdapter(this、mylistName、mylistTime);
System.out.println(“适配器=>”+lviewAdapter.getCount());
list_view.setAdapter(lviewAdapter);
}

如果您可以使用Java 8 Java.time库(不确定是否在Android中可用),那么
LocalDateTime
类的
until
方法显然是值得使用的。这将分为三个步骤:(1)确定下一个祈祷时间(或日出时间),(2)计算还剩多少秒,(3)将其格式化为小时、分钟和秒。哦,这个词是“剩余”,而不是“铰眼”(这意味着别的)。谢谢@dawood ibn kareem。你能告诉我如何确定下一个祈祷时间吗?假设你已经计算了所有六次(五次祈祷时间加上日出),假设ishaa发生在午夜之前(在仲夏,在高纬度地区,情况可能并非如此);最简单的事情可能就是按照时间顺序进行,将每个时间与当前时间进行比较。在当前时间之后的第一个时间就是你想要的时间。如果你找不到在当前时间之后的时间,那么下一个祈祷时间就是明天的fajr。再次感谢@DawoodibnKareem@DawoodibnKareem我用If来做,但我总是这样做第二、第三和第四个
if
语句需要是
else if
而不是“四”。
public void getTime() {

    // Retrive lat, lng using location API
    double latitude = 31.952162;
    double longitude = 35.233154;
    double timezone = (Calendar.getInstance().getTimeZone()
            .getOffset(Calendar.getInstance().getTimeInMillis()))
            / (1000 * 60 * 60);
    PrayTime prayers = new PrayTime();

    prayers.setTimeFormat(prayers.Time24);
    prayers.setCalcMethod(prayers.Makkah);
    prayers.setAsrJuristic(prayers.Shafii);
    prayers.setAdjustHighLats(prayers.AngleBased);
    int[] offsets = {3, 0, 0, 0, 6, 6, 7}; // {Fajr,Sunrise,Dhuhr,Asr,Sunset,Maghrib,Isha}
    prayers.tune(offsets);

    Date now = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(now);

    ArrayList<String> prayerTimes = prayers.getPrayerTimes(cal, latitude,
            longitude, timezone);
    ArrayList<String> prayerNames = prayers.getTimeNames();
    String[] mylistName = new String[prayerNames.size()];
    mylistName = prayerNames.toArray(mylistName);

    String[] mylistTime = new String[prayerTimes.size()];
    mylistTime = prayerTimes.toArray(mylistTime);

    final TextView txt_remaing = (TextView) findViewById(R.id.current_time_view);


    final String[] finalMylistTime = mylistTime;


          LocalTime[] myTimes = new LocalTime[] {

                    LocalTime.parse(finalMylistTime[0],TIME_FORMATTER), // fajer
                    LocalTime.parse(finalMylistTime[2],TIME_FORMATTER), // th
                    LocalTime.parse(finalMylistTime[3],TIME_FORMATTER), // asser
                    LocalTime.parse(finalMylistTime[4],TIME_FORMATTER), // magreb
                    LocalTime.parse(finalMylistTime[6],TIME_FORMATTER) // ishaa


            };
               LocalTime time  = LocalTime.now();

                 if (time.isBefore(myTimes[1]))
                      {
                       txt_remaing.setText("one");
                      }

                 if (time.isBefore(myTimes[2]))
                     {
                          txt_remaing.setText("two");
                     }
                 if (time.isBefore(myTimes[3]))
                 {
                     txt_remaing.setText("three");

                 }
                 if (time.isBefore(myTimes[4]))
                 {
                     txt_remaing.setText("four");
                 }




    list_view = (ListView) findViewById(R.id.listView2);
    lviewAdapter = new ListViewAdapter(this, mylistName, mylistTime);

    System.out.println("adapter => " + lviewAdapter.getCount());

    list_view.setAdapter(lviewAdapter);
}