2016-08-04 25 views
0

Ich möchte das aktuelle Datum als erste Position in einem TextView Formular anzeigen, das 3 Monate in einer Liste als (aktuelle ,Vorherige Nächste). Wie kann ich das machen?Anzeige des aktuellen Datums in der ersten Position für aufeinanderfolgende 3 Monate wie (aktuell, vorheriges, nächstes) aus einer Liste

private void CalculateDates() { 

    //to calculate the date I've used this function 
     DateRange = new ArrayList<String>(); 
     boolean loopVal = true; 
     SimpleDateFormat formatter = new SimpleDateFormat(" E ddMMMyyyy"); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.add(Calendar.MONTH, -1); 

    //textView is the TextView view that should display it 
     String StartDate = formatter.format(calendar.getTime()); 
     calendar.add(Calendar.MONTH, 2); 
     String EndDate = formatter.format(calendar.getTime()); 
     DateRange.add(StartDate); 
     Date date = null; 
     try { 
       while (loopVal) { 
        date = formatter.parse(StartDate); 

        Calendar cal = Calendar.getInstance(); 

        cal.setTime(date); 
       } 
     }catch(Exception e){ 

     } 
    } 
+1

, was Sie tun wollen, ist nicht klar. –

+0

Ich möchte nur das aktuelle Datum aus den folgenden 3 Monaten anzeigen wie (vorherige, aktuelle, nächste) sie sind in einer Liste – lakshmi

+0

Mögliche Duplikat von [wie man eine Liste von Daten zwischen zwei Daten in Java] (http: // stackoverflow.com/questions/2689379/how-to-get-a-list-of-dates-between-two-dates-in-java) –

Antwort

1

Sie können versuchen, wie dies ich für Sie tun.

bearbeiten Like this

public class MainActivity extends ActionBarActivity { 

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

    TextView tView = (TextView) findViewById(R.id.textView1); 

    ArrayList<String> threDate = get3Dates(); 
    //tView.setText(threDate.toString()); 
    String dates = ""; 

    for (int i = 0; i < threDate.size(); i++) { 
     dates+= threDate.get(i).toString()+" "; 
    } 

    tView.setText(dates); 
} 


private ArrayList<String> get3Dates(){ 

    SimpleDateFormat formatter = new SimpleDateFormat(" E dd MMM yyyy"); 

    ArrayList<String> three_date = new ArrayList<String>(); 
    Calendar calendar = Calendar.getInstance(); 

    //Current Date 
    String current_date = formatter.format(calendar.getTime()); 
    three_date.add(current_date);//only date 
    //three_date.add("Present Date: "+current_date);//or with label 

    //Previous Date 
    calendar.add(Calendar.MONTH, -1); 
    String previous_date = formatter.format(calendar.getTime()); 
    three_date.add(previous_date);//only date 
    //three_date.add("Previous Date: "+previous_date);//or with label 

    //Future Date 
    calendar.add(Calendar.MONTH, 2); 
    String future_date = formatter.format(calendar.getTime()); 
    three_date.add(future_date);//only date 
    //three_date.add("Next Date: "+future_date);//or with label 

    return three_date; 
} 

} 

und Plan xml wie diese

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<HorizontalScrollView 
    android:id="@+id/horizontalScrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal" > 
     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="20dp" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
    </LinearLayout> 
    </HorizontalScrollView> 
</LinearLayout> 

ich Ihnen ein anderes Beispiel zu tun. Hier können Sie auf Weiter klicken, um das nächste und vorherige Datum zu erhalten. Layout xml wie unten

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Navigable(Next-Priv) Example" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:weightSum="10" > 

    <TextView 
     android:id="@+id/tvPrev" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.5" 
     android:gravity="left|center_vertical" 
     android:text="&lt;&lt;" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/tvDate" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="7" 
     android:gravity="center_vertical|center_horizontal" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/tvNext" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.5" 
     android:gravity="right|center_vertical" 
     android:text=">>" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 
</LinearLayout> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="30dp" 
    android:text="Simple TextView with Scroll:" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<HorizontalScrollView 
    android:id="@+id/horizontalScrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="20dp" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
    </LinearLayout> 
</HorizontalScrollView> 

Java-Code in Aktivitätsklasse

public class MainActivity extends ActionBarActivity { 


TextView tvPriv, tvDate, tvNext; 


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

    tvPriv = (TextView) findViewById(R.id.tvPrev); 
    tvDate = (TextView) findViewById(R.id.tvDate); 
    tvNext = (TextView) findViewById(R.id.tvNext); 

    final SimpleDateFormat formatter = new SimpleDateFormat(" E dd MMM yyyy"); 
    final Calendar calendar = Calendar.getInstance(); 
    String curent_date = formatter.format(calendar.getTime()); 
    tvDate.setText(curent_date); 


    tvPriv.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(View v){ 
       calendar.add(Calendar.MONTH, -1); 
       String prev_date = formatter.format(calendar.getTime()); 
       tvDate.setText(prev_date); 
      } 
     }); 



    tvNext.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      calendar.add(Calendar.MONTH, +1); 
      String next_date = formatter.format(calendar.getTime()); 
      tvDate.setText(next_date); 
     } 
    }); 



    //Simple textView example 
    TextView tView = (TextView) findViewById(R.id.textView1); 

    ArrayList<String> threDate = get3Dates(); 
    //tView.setText(threDate.toString()); 
    String dates = ""; 

    for (int i = 0; i < threDate.size(); i++) { 
     dates+= threDate.get(i).toString()+" "; 
    } 

    tView.setText(dates); 


    } 



private ArrayList<String> get3Dates(){ 

    SimpleDateFormat formatter = new SimpleDateFormat(" E dd MMM yyyy"); 

    ArrayList<String> three_date = new ArrayList<String>(); 
    Calendar calendar = Calendar.getInstance(); 

    //Current Date 
    String current_date = formatter.format(calendar.getTime()); 
    three_date.add(current_date);//only date 
    //three_date.add("Present Date: "+current_date);//or with label 

    //Previous Date 
    calendar.add(Calendar.MONTH, -1); 
    String previous_date = formatter.format(calendar.getTime()); 
    three_date.add(previous_date);//only date 
    //three_date.add("Previous Date: "+previous_date);//or with label 

    //Future Date 
    calendar.add(Calendar.MONTH, 2); 
    String future_date = formatter.format(calendar.getTime()); 
    three_date.add(future_date);//only date 
    //three_date.add("Next Date: "+future_date);//or with label 

    return three_date; 
} 

} 
+0

Hi Haque, Danke für deine Antwort, aber das stimmt nicht genau mit meiner Frage überein. Eigentlich habe ich eine Liste von Terminen für 3 Monate in einer Textansicht angezeigt, in der ich das aktuelle Datum an der ersten Stelle für die vorherigen und anstehenden Daten anzeigen will und alles scroll ich mit Scrollbalken um zu sehen. – lakshmi

+0

können Sie Ihren Entwurf teilen, wie Sie zeigen möchten? –

+0

Horizontal möchte ich nur die Daten wie einen Kalender scrollen, in dem ich das aktuelle Datum als das erste haben möchte. danke .. – lakshmi