[Java][Android] Adventskalender Datumsabfrage

11/29/2014 23:51 Andi#1
Heyho,
ich hab ein kleines Problem.
Ich möchte gerne für meine Freundin einen kleinen Personalisierten Adventskalender Basteln für ihr Handy.
Das klappt soweit auch, jedoch möchte ich nun, dass Tor Nummer 1 erst ab dem 01.12.14 geöffnet werden kann usw.

Ich habe es momentan so versucht:

Code:
Date currentTime = new Date(); 
          Date givenTime = new Date();
          givenTime.setTime(1417388400);
          
          if(givenTime.before(currentTime))
          {
              startActivity(new Intent(this,Error.class));
          }
          else
          {
                startActivity(new Intent(this,Day1.class));
          }
Jedoch kommt immer nur die Error Seite.
Ich habe den Timestamp natürlich immer auf die jeweilige Zeit angepasst.

Ich hoffe mir kann jemand helfen.

Mfg,
.Winston
11/30/2014 00:50 omer36#2
versuchs mal so:
Code:
	    DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
	    
	    if ( formatter.format(new Date()).compareTo("30.11.2014") == 0 ){
	    	Toast.makeText(this, "heute...", Toast.LENGTH_LONG).show();
	    	//call activity
	    } else {
	    	Toast.makeText(this, "nicht heute...", Toast.LENGTH_LONG).show();
	    	//call activity
	    }
oder per else if die anderen activity´s aufrufen, falls du jedes einzeln machst..
bzw nicht == 0 prüfen, sondern > 0 , denn sie soll es ja auch später noch öffnen können..
11/30/2014 12:19 Andi#3
Quote:
Originally Posted by omer36 View Post
versuchs mal so:
Code:
	    DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
	    
	    if ( formatter.format(new Date()).compareTo("30.11.2014") == 0 ){
	    	Toast.makeText(this, "heute...", Toast.LENGTH_LONG).show();
	    	//call activity
	    } else {
	    	Toast.makeText(this, "nicht heute...", Toast.LENGTH_LONG).show();
	    	//call activity
	    }
oder per else if die anderen activity´s aufrufen, falls du jedes einzeln machst..
bzw nicht == 0 prüfen, sondern > 0 , denn sie soll es ja auch später noch öffnen können..
Habe deine Lösung mal ausprobiert:

Code:
	@Override
	public void onClick(View v) 
	{		  
		  SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
		    
		    if ( formatter.format(new Date()).compareTo("30.11.2014") > 0 ){
		    	Toast.makeText(this, "heute...", Toast.LENGTH_LONG).show();
		    	startActivity(new Intent(this,Day1.class));
		    } else {
		    	Toast.makeText(this, "nicht heute...", Toast.LENGTH_LONG).show();
		    	startActivity(new Intent(this,Error.class));
		    }
Er zeigt mir bei klick auf Button1 den Toast "nicht heute..." an und öffnet die Error Seite.
11/30/2014 12:58 omer36#4
gib mal das hier direkt unter "SimpleDateFormat ..." ein:

Toast.makeText(this, formatter.format(new Date()), Toast.LENGTH_LONG).show();

um zu sehen welches datum dein emulator aktuell hat, als ichs getestet hatte, war bei meinem emu ein falsches datum.



oh mein fehler, >= 0 sollte da stehen ^.^
soll ja natürlich heute oder zb morgen gehen
11/30/2014 20:03 Andi#5
Quote:
Originally Posted by omer36 View Post
gib mal das hier direkt unter "SimpleDateFormat ..." ein:

Toast.makeText(this, formatter.format(new Date()), Toast.LENGTH_LONG).show();

um zu sehen welches datum dein emulator aktuell hat, als ichs getestet hatte, war bei meinem emu ein falsches datum.



oh mein fehler, >= 0 sollte da stehen ^.^
soll ja natürlich heute oder zb morgen gehen
Vielen Dank funktioniert nun einwandfrei! *-* <3

Wo wir gerade dabei sind und ich nicht ein extra Thema eröffnen möchte ioch habe nun folgendes Problem:
Bei Button 1 soll sich Day1 öffnen bei Button 2 halt Day2.
Das sich Button 1 öffnet geht ja jetzt aber ich habe keinen Plan wo ich rein schreiben soll, bei Button 2 = Day2 o.o
Sorry bin erst seit einer Woche dabei :p

Mein aktueller Code:
Code:
package de.andi.adventskalender;

import java.text.SimpleDateFormat;
import java.util.Date;

import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
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.Toast;



public class MainActivity extends ActionBarActivity implements OnClickListener {
	Button btn1;
	Button btn2;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        btn1 = (Button)findViewById(R.id.button1);
        btn1.setOnClickListener(this);
        
        btn2 = (Button)findViewById(R.id.button2);
        btn2.setOnClickListener(this);
        
    }
    
    

    @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);
    }



	@Override
	public void onClick(View v) 
	{		  
		  SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
		    
		    if ( formatter.format(new Date()).compareTo("30.11.2014") >= 0 ){
		    	Toast.makeText(this, "heute...", Toast.LENGTH_LONG).show();
		    	startActivity(new Intent(this,Day1.class));
		    } else {
		    	Toast.makeText(this, "nicht heute...", Toast.LENGTH_LONG).show();
		    	startActivity(new Intent(this,Error.class));
		    }
	}
}
Variablen usw sind gesetzt nur ich kann ja nicht
Code:
startActivity(new Intent(this,Day2.class));
in das gleiche Klick Event tun wie Button 1 / Day1.
11/30/2014 23:18 omer36#6
du musst überprüfen, welcher button gedrückt wurde... weiss nicht wie der Listener das bei dir macht... versuchs mal so:

in deiner onClick() methode abfragen;
Code:
if (v.getSource() == btn1){
   if ( formatter. ....
}else if (v.getSource() == btn2){
....
}
oder
v.equals(btn1)