2016-07-22 7 views
0

Meine Android App zeigt eine Liste von Monaten nach dem Öffnen. Wenn Sie auf einen Monat klicken, möchte ich eine Liste der Tage anzeigen, die basierend auf der Anzahl der Tage in jedem Monat angezeigt werden. Das Problem, das ich habe, ist, ich weiß nicht, wie ich meine MonthIntentChanger Aktivität bekomme, um die Liste der Tage in diesem Monat zu erstellen, abhängig davon, auf welchen Monat in meiner MainActivity geklickt wurde. Wenn der Benutzer beispielsweise auf "Januar" klickt, möchte ich, dass "1-31" in einer Liste angezeigt wird, sodass er auf den Tag klicken kann, und für Februar möchte ich eine Liste von "1-28" anzeigen usw. anzeigen. Ich möchte das in einer Aktivität machen. Zuvor habe ich die monatliche Listenansicht von Tagen in einer separaten Aktivität behandelt, die ineffizient ist. Wenn die App startet, werden die Monate angezeigt und wenn sie angeklickt werden, gehen sie zu MonthIntentChanger, aber nichts erscheint. Vielleicht ist diese Frage anderswo beantwortet, ich habe nichts gesehen. Was ist in onthIntent war etwas, was ich versuchte, das nicht funktioniert Bitte lassen Sie mich wissen, wenn etwas unklar ist. DankWie mache ich eine Listenansicht der Tage in jedem Monat in einer Aktivität, abhängig davon, auf welchen Monat in einer anderen Aktivität geklickt wurde?

package com.example.android.hamptoneventsplanner; 
import android.widget.ListView; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 

public class MonthIntentChanger extends AppCompatActivity { 


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

    } 


     /** 
     * Create a for loop that executes the following: Based on the number of days passed in, create 
     * that many numbers in listView. 
     */ 

    public void getNumberOfDays(int days) { 
     Integer[] day = new Integer[days]; 
     for (int daysInMonth = 0; daysInMonth <= day.length; daysInMonth++) { 
      day[daysInMonth] = day[daysInMonth + 1]; 
     } 

     ArrayAdapter<Integer> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, day); 
     ListView listView = (ListView) findViewById(R.id.rootView); 
     listView.setAdapter(adapter); 
    } 

} 


package com.example.android.hamptoneventsplanner; 
import android.app.Activity; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 


    int[] textViewIDs = new int[] {R.id.text_view1,R.id.text_view2,R.id.text_view3, 
            R.id.text_view4,R.id.text_view5,R.id.text_view6, 
            R.id.text_view7,R.id.text_view8,R.id.text_view9, 
            R.id.text_view10,R.id.text_view11,R.id.text_view12}; 
    public int monthCounter = 12; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Set the content of the activity to use the activity_main.xml layout file 
     setContentView(R.layout.activity_main); 

     // For loop to iterate over the views, make them clickable, and fill them with the number of 
     // days that they need 
     for(int i = 0; i < monthCounter; i++) { 
      // Iterate through the loop and find the text view for each month. 
      TextView mainLabelView = (TextView)findViewById(textViewIDs[i]); 
      // Set a clicklistener on that View 
      mainLabelView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        int monthCode = 0; 
        switch(view.getId()) { 
         case R.id.text_view1: 
          monthCode = 1; 
          break; 
         case R.id.text_view2: 
          monthCode = 2; 
          break; 
         case R.id.text_view3: 
          monthCode = 3; 
          break; 
         case R.id.text_view4: 
          monthCode = 4; 
          break; 
         case R.id.text_view5: 
          monthCode = 5; 
          break; 
         case R.id.text_view6: 
          monthCode = 6; 
          break; 
         case R.id.text_view7: 
          monthCode = 7; 
          break; 
         case R.id.text_view8: 
          monthCode = 8; 
          break; 
         case R.id.text_view9: 
          monthCode = 9; 
          break; 
         case R.id.text_view10: 
          monthCode = 10; 
          break; 
         case R.id.text_view11: 
          monthCode = 11; 
          break; 
         case R.id.text_view12: 
          monthCode = 12; 
          break; 
        } 

        //Create a new intent to open the activity to create the list views for each month 
        Intent myIntent = new Intent(MainActivity.this,MonthIntentChanger.class); 
        myIntent.putExtra("monthCode",monthCode); 
        //Start the new activity 
        startActivityForResult(myIntent,monthCode); 

       } 
      }); 
     } 
    } 
} 

Antwort

0

Anbetracht das, was Sie zu tun versuchen, kann es viel einfacher sein, einen oder Calendarnumber zu verwenden, in dem Sie die Liste der nunbers basierend auf dem Münster Monat angeklickt. Es wäre viel einfacher und eine sauberere App zu machen. Viel sauberer. Vor allem, weil Sie im Grunde einen Kalender

machen