folder Tahribat.com Forumları
linefolder Android - IOS Programlama
linefolder Android Kronometre Ve Activity‘Ler Arası Veri Aktarımı (Yardım Ediniz)



Android Kronometre Ve Activity‘Ler Arası Veri Aktarımı (Yardım Ediniz)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    overbite
    overbite's avatar
    Kayıt Tarihi: 13/Ağustos/2011
    Erkek

    merhaba arkadaşlar aşağıdaki yazdığım kodlarla iki gündür uğraşıyorum main activity de kronometreyi başlatıp durdurma kısımları çalışıyor fakat çıkış tuşuna basınca kronometrenin gösterdiği süreyi diğer activity'ye bundle ile gönderip o ekranda göstermeyi başaramadım, sürekli hata veriyor (android telefon olmadığından emülatör kullanıyorum) yardımcı olursanız sevinirim:

    KronometreActivity.java

    package com.asdasd.kronometre;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.SystemClock;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Chronometer;
    
    public class KronometreActivity extends Activity implements View.OnClickListener {
    	
    	Chronometer chr;
    	Button startbutton;
    	Button stopbutton;
    	Button exitbutton;
    	
    	Bundle bundle;	
    	long yazi = 888;
    
    		
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            chr = (Chronometer) findViewById(R.id.chronometer);
    		chr.setFormat("%s");
    		chr.setBase(SystemClock.elapsedRealtime());
    		
    		startbutton = (Button) findViewById(R.id.startbutton);
    		startbutton.setOnClickListener(this);
    		
    		stopbutton = (Button) findViewById(R.id.stopbutton);
    		stopbutton.setOnClickListener(this);
    		stopbutton.setEnabled(false);
    		
    		exitbutton = (Button) findViewById(R.id.exitbutton);
    		exitbutton.setOnClickListener(this);
            
        }
    
    	public void onClick(View v) {
    		switch (v.getId()) {
    		case R.id.startbutton:
    			chr.setBase(SystemClock.elapsedRealtime());
    			chr.start();
    			
    			startbutton.setEnabled(false);
    			stopbutton.setEnabled(true);
    			break;
    		
    		case R.id.stopbutton:
    			chr.stop();
    			
    			startbutton.setEnabled(true);
    			stopbutton.setEnabled(false);
    			break;
    		
    		case R.id.exitbutton:
    			try {
    			yazi = chr.getBase();
    			chr.stop();
    			} catch(Exception e) {
    				e.printStackTrace();
    				yazi = 999;
    				bundle.putLong("durum", yazi);
    				Intent intent = new Intent("com.asdasd.kronometre.DURUM");
    				intent.putExtras(bundle);
    				startActivity(intent);
    			}
    			
    		}
    	}
        
    }

    main.xml

     

    Durum.java

    package com.asdasd.kronometre;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class Durum extends Activity {
    
    	Bundle bundle;
    	long yazi1;
    	String yazi2;
    	TextView goster;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.durum);
    
    		try {
    			bundle = getIntent().getExtras();
    			yazi1 = bundle.getLong("durum");
    			yazi2 = Long.toString(yazi1);
    			goster = (TextView) findViewById(R.id.goster);
    			goster.setText(yazi2);
    		} catch (Exception e) {
    			e.printStackTrace();
    			yazi2 = "hata";
    			goster.setText(yazi2);
    		}
    	}
    
    }
    

    durum.xml

     

     

    strings.xml

     

    
    
    
        Chronometer
        Start
        Stop
        Exit
    
    

    AndroidManifest.xml

     

    ulan bir susar mısın?
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Kronometrenin değerini almak için bunu kullanmalısın:

    yazi = (SystemClock.elapsedRealtime() - chr.getBase()) / 1000;

    Sen hiç kaval çaldın mı?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    case R.id.exitbutton:
    61             try {
    62             yazi = chr.getBase();
    63             chr.stop();
    64             catch(Exception e) {
    65                 e.printStackTrace();
    66                 yazi = 999;
    67                 bundle.putLong("durum", yazi);
    68                 Intent intent = new Intent("com.asdasd.kronometre.DURUM");
    69                 intent.putExtras(bundle);
    70                 startActivity(intent);
    71             }

     

    burada neden durum activitiysi catch bloğunun içinde? hata mı veriyor ki buraya aldın ? 


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    overbite
    overbite's avatar
    Kayıt Tarihi: 13/Ağustos/2011
    Erkek

    evet try catch bloğunda da kafa gitmiş :D son hali şu şekilde ve çalışmamaya devam ediyor:

     

    case R.id.exitbutton:
    			chr.stop();
    			try {
    				yazi = (SystemClock.elapsedRealtime() - chr.getBase()) / 1000;
    			} catch (Exception e) {
    				e.printStackTrace();
    				yazi = 999;
    			} finally {
    				bundle.putLong("durum", yazi);
    				Intent intent = new Intent("com.asdasd.kronometre.DURUM");
    				intent.putExtras(bundle);
    				startActivity(intent);
    			}

    ulan bir susar mısın?
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek
    chr.getBase()

    den önce

    chr.stop();

    kullanmışsın. Önce değeri alıp sonra durdurmayı dener misin? Stoptan sonra getBase(); çalışmıyor olabilir.


    Sen hiç kaval çaldın mı?
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    overbite
    overbite's avatar
    Kayıt Tarihi: 13/Ağustos/2011
    Erkek

    JPriest bunu yazdı:
    -----------------------------

    chr.getBase()

    den önce

    chr.stop();

    kullanmışsın. Önce değeri alıp sonra durdurmayı dener misin? Stoptan sonra getBase(); çalışmıyor olabilir.
    -----------------------------

    şöyle denedim yine olmadı:

    case R.id.exitbutton:
    			
    			try {
    				yazi = (SystemClock.elapsedRealtime() - chr.getBase()) / 1000;
    				chr.stop();
    			} catch (Exception e) {
    				e.printStackTrace();
    				chr.stop();
    				yazi = 999;
    			} finally {
    				bundle.putLong("durum", yazi);
    				Intent intent = new Intent("com.asdasd.kronometre.DURUM");
    				intent.putExtras(bundle);
    				startActivity(intent);
    			}

    ardından kronometreyi bırakıp sadece bir long değeri göndermeyi denedim

    try {
    				// yazi = (SystemClock.elapsedRealtime() - chr.getBase()) / 1000;
    				chr.stop();
    				yazi = 555;
    			} catch (Exception e) {
    				e.printStackTrace();
    				chr.stop();
    				yazi = 999;
    			} finally {
    				bundle.putLong("durum", yazi);
    				Intent intent = new Intent("com.kudretemre.asdasd.DURUM");
    				intent.putExtras(bundle);
    				startActivity(intent);
    			}

    sanırım sıkıntı koronometrenin değeri değilde diğer activityi çalıştırmakta


    ulan bir susar mısın?
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    bundle ı new ile oluşturmamışsın hocam.. constructor da yada main de bi yerde

    bundle = new Bundle(); de

     

    edit böyle olmazsa, nerede hata verdiğini, hata mesajını falan bi zahmet söyle. eclipse yok şuan bende (daha doğrusu ubuntuda vardı, silindi... )


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Çünkü bundle tanımlaması yapmışsın ama yeni bir instance oluşturmamışsın. Diğer activity'e hep null gider.

    bundle = new Bundle(); gibisinden bir satır eklemelisin. onCreate() içinde yapabilirsin.

    ---

    edit:

    yine geç kalmışım :)


    Sen hiç kaval çaldın mı?
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    overbite
    overbite's avatar
    Kayıt Tarihi: 13/Ağustos/2011
    Erkek

    unbalanced bunu yazdı:
    -----------------------------

    bundle ı new ile oluşturmamışsın hocam.. constructor da yada main de bi yerde

    bundle = new Bundle(); de

     

    edit böyle olmazsa, nerede hata verdiğini, hata mesajını falan bi zahmet söyle. eclipse yok şuan bende (daha doğrusu ubuntuda vardı, silindi... )


    -----------------------------

    teşekkür ederim, düzeldi :)

    JPriest sen de sağolasın zaman ayırdın

    overbite tarafından 30/Ara/12 02:57 tarihinde düzenlenmiştir

    ulan bir susar mısın?
Toplam Hit: 2532 Toplam Mesaj: 9