Ich habe zwei Timings und eine Schaltfläche in meiner Listview.Difference zwischen ihnen ist 10 Min. Was ich will ist, wenn meine Handyzeit Newtime-Taste erreicht klickbar bis dann kann nicht angeklickt werden.Folgen ist meine Code-Vergleichen Sie Zeit mit Handy-Zeit
SecondCustom.java
public class SecondCustom extends BaseAdapter {
Activity a;
ArrayList<Model> timelist;
Date newtime;
Time itime,canceltime;
public SecondCustom(Activity a, ArrayList<Model> timelist) {
this.a = a;
this.timelist= timelist;
}
@Override
public int getCount() {
return timelist.size();
}
@Override
public Object getItem(int i) {
return timelist.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
public class Viewholder{
TextView srno, ctime, ltime;
Button buy;
}
@Override
public View getView(final int i, View convertView, ViewGroup viewGroup) {
Viewholder viewholder=null;
if (convertView == null) {
viewholder = new Viewholder();
LayoutInflater li = a.getLayoutInflater();
convertView = li.inflate(R.layout.secondcustom, viewGroup, false);
viewholder.srno = (TextView) convertView.findViewById(R.id.sr);
viewholder.ctime = (TextView) convertView.findViewById(R.id.currenttime);
viewholder.buy = (Button) convertView.findViewById(R.id.st);
viewholder.ltime = (TextView) convertView.findViewById(R.id.lefttime);
convertView.setTag(viewholder);
}
else {
viewholder = (Viewholder) convertView.getTag();
}
Model model=timelist.get(i);
viewholder.srno.setText(valueOf(timelist.get(i).getSr()));
String Time = DateFormat.getTimeInstance().format(new Date());
viewholder.ctime.setText(Time);
Calendar cal = Calendar.getInstance();
SimpleDateFormat sd = new SimpleDateFormat("HH:mm:ss a");
cal.add(Calendar.MINUTE,10);
String FutTime= sd.format(cal.getTime());
viewholder.ltime.setText(FutTime);
viewholder.buy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(a, "Purchased" + " " + flowerlist.get(i).getSr(), Toast.LENGTH_LONG).show();
}
});
return convertView;
}
}
secondcustom.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="50dp"
android:layout_height="40dp"
android:id="@+id/sr"
android:textSize="15dp"
android:textAlignment="center"/>
<TextView
android:layout_width="100dp"
android:layout_height="40dp"
android:id="@+id/currenttime"
android:textSize="15dp"
android:textAlignment="center"/>
<Button
android:layout_width="70dp"
android:layout_height="40dp"
android:id="@+id/st"
android:text="Buy"
android:textAllCaps="false"
android:textSize="15dp"
android:background="#57ba58"
android:textAlignment="center"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"/>
<TextView
android:layout_width="100dp"
android:layout_height="40dp"
android:id="@+id/lefttime"
android:textSize="15dp"
android:textAlignment="center"/>
</LinearLayout>
werden lösen Es werde den UI-Geck hinken. –
Diese Lösung funktioniert, bis die App im Hintergrund ist. Wenn die App geschlossen ist, wird der Timer erneut gestartet.Wenn die App nach 10 Minuten geschlossen wird, muss sie nur angeklickt werden. – Neha
Sie können Ihre Liste in sqlite ablegen und eine Spalte hinzufügen, um die Zeit zu verfolgen. Sie können dann die Zeitspalte in db zusammen mit der ListView-Schaltfläche aktualisieren, indem Sie jede Sekunde Handler, Timer usw. verwenden. Selbst wenn der Timer gelöscht wird, bleibt Ihr letztes Mal in db und Sie können den Countdown von der zuletzt gespeicherten Dauer beim Neustart der App auslösen. –