Android - Aplikace neodpovídá – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Android - Aplikace neodpovídá – Java – Fórum – Programujte.comAndroid - Aplikace neodpovídá – Java – Fórum – Programujte.com

 

hejnallukas0
Návštěvník
14. 7. 2012   #1
-
0
-

Dobrý večer, 

právě jsem začal programovat v Javě pro Android, ale aplikace mi neustále vypisuje, že neodpovídá. 

Vůbec nevím jak je to možné. 

Děkuji za odpověď

package com.kejhy.rozvrhhodindropbox;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        final Calendar casNyni = Calendar.getInstance();
        
        final GregorianCalendar[][] casHodin = new GregorianCalendar[10][1];
        casHodin[0][0] 	= 	new GregorianCalendar(casNyni.YEAR, 	casNyni.MONTH, 		casNyni.DAY_OF_MONTH, 	7,	5,	0); 
        casHodin[0][1] 	= 	new GregorianCalendar(casNyni.YEAR, 	casNyni.MONTH, 		casNyni.DAY_OF_MONTH, 	7,	50,	0);
        casHodin[1][0]	=	new GregorianCalendar(casNyni.YEAR, 	casNyni.MONTH, 		casNyni.DAY_OF_MONTH,	8,	5,	0);
        casHodin[1][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH, 		casNyni.DAY_OF_MONTH,	8,	50,	0);
        casHodin[2][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	9,	0,	0);
        casHodin[2][1]	= 	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH, 		casNyni.DAY_OF_MONTH,	9,	45,	0);
        casHodin[3][0]	= 	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH, 	10,	5,	0);
        casHodin[3][1]	= 	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH, 		casNyni.DAY_OF_MONTH,	10,	50,	0);
        casHodin[4][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	11,	0,	0);
        casHodin[4][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	11,	45,	0);
        casHodin[5][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	11,	55,	0);
        casHodin[5][1] 	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	12,	40,	0);
        casHodin[6][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	12,	45,	0);
        casHodin[6][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	13,	35,	0);
        casHodin[7][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	13,	40,	0);
        casHodin[7][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	14,	25,	0);
        casHodin[8][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	14,	30,	0);
        casHodin[8][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	15,	15,	0);
        casHodin[9][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	15,	20,	0);
        casHodin[9][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	16,	5,	0);
        
        TextView casText = (TextView) findViewById(R.id.casTextView);
        
        long hodinaNyni = casNyni.HOUR;
        long minutaNyni = casNyni.MINUTE;
        long sekundaNyni = casNyni.SECOND;
        
        casText.setText(Long.toString(hodinaNyni)+" : "+Long.toString(minutaNyni)+" : "+Long.toString(sekundaNyni));
        setContentView(casText);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    
}
Nahlásit jako SPAM
IP: 88.101.192.–
Tom
~ Anonymní uživatel
434 příspěvků
15. 7. 2012   #2
-
0
-

Napadaji me dve moznosti:

1) spatne/vubec  definovana aktivita MainActivity v manifestu

2) Naplneni toho pole trva vic nez cca 5s (tusim, ze jsem nekde cetl, ze zrovna vytvoreni toho calendare neni uplne levne, ale mozna se pletu) a tak to VM androidu zabije z duvodu, ze aplikace skutecne nejakou dobu neodpovida. V tom pripade bych to pole naplnoval a objekty vytvarel v jinem nez UI threadu a v UI to pak nechal jen zobrazit.

Nahlásit jako SPAM
IP: 93.146.210.–
hejnallukas0
Návštěvník
15. 7. 2012   #3
-
0
-

#2 Tom
Myslel jsi nějak takhle ??

package com.kejhy.rozvrhhodindropbox;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

	Calendar casNyni;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        new Thread(new Runnable(){
        	public void run(){
        casNyni = Calendar.getInstance();
        
        final GregorianCalendar[][] casHodin = new GregorianCalendar[10][1];
        casHodin[0][0] 	= 	new GregorianCalendar(casNyni.YEAR, 	casNyni.MONTH, 		casNyni.DAY_OF_MONTH, 	7,	5,	0); 
        casHodin[0][1] 	= 	new GregorianCalendar(casNyni.YEAR, 	casNyni.MONTH, 		casNyni.DAY_OF_MONTH, 	7,	50,	0);
        casHodin[1][0]	=	new GregorianCalendar(casNyni.YEAR, 	casNyni.MONTH, 		casNyni.DAY_OF_MONTH,	8,	5,	0);
        casHodin[1][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH, 		casNyni.DAY_OF_MONTH,	8,	50,	0);
        casHodin[2][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	9,	0,	0);
        casHodin[2][1]	= 	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH, 		casNyni.DAY_OF_MONTH,	9,	45,	0);
        casHodin[3][0]	= 	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH, 	10,	5,	0);
        casHodin[3][1]	= 	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH, 		casNyni.DAY_OF_MONTH,	10,	50,	0);
        casHodin[4][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	11,	0,	0);
        casHodin[4][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	11,	45,	0);
        casHodin[5][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	11,	55,	0);
        casHodin[5][1] 	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	12,	40,	0);
        casHodin[6][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	12,	45,	0);
        casHodin[6][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	13,	35,	0);
        casHodin[7][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	13,	40,	0);
        casHodin[7][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	14,	25,	0);
        casHodin[8][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	14,	30,	0);
        casHodin[8][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	15,	15,	0);
        casHodin[9][0]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	15,	20,	0);
        casHodin[9][1]	=	new GregorianCalendar(casNyni.YEAR,		casNyni.MONTH,		casNyni.DAY_OF_MONTH,	16,	5,	0);
        	}
        }).start();
        
        TextView casText = (TextView) findViewById(R.id.casTextView);
        
        long hodinaNyni = casNyni.HOUR;
        long minutaNyni = casNyni.MINUTE;
        long sekundaNyni = casNyni.SECOND;
        
        casText.setText(Long.toString(hodinaNyni)+" : "+Long.toString(minutaNyni)+" : "+Long.toString(sekundaNyni));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    
}
Nahlásit jako SPAM
IP: 88.101.192.–
Tom
~ Anonymní uživatel
434 příspěvků
15. 7. 2012   #4
-
0
-

Priblizne tak, ale asi nemuzes menit UI z jineho nez UI threadu (takze nemuzes pouzit .settext ve svem runnable). Da se to resit treba pomoci Handle. Zkus se podivat na handly a runnable do oficialni android dokumentace, tam to je popsane hezky...

Nahlásit jako SPAM
IP: 93.146.210.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý