Üben mit Zeichnen und 2 layouts

  • 8 Antworten
  • Letztes Antwortdatum
P

paxis

Fortgeschrittenes Mitglied
0
Hallo leute,

Ich habe nochmal angefangen mein Buch zu Android und Java durchzuarbeiten und wollte nun eine kleine App schreiben die etwas kombiniert!


Sie soll folgendes machen:
Ich klicke auf einen Button, der löst einen Timer aus, dieser erhöht wiederrum den Wert einer Progressbar! Sobald diese voll ist, wird ein neues Layout geladen und etwas in diesem Layout gezeichnet!

Hier mal der Code :)

Code:
package de.tobi.medien;


import java.util.Timer;
import java.util.TimerTask;


import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ProgressBar;

public class MainActivity extends Activity {
    private Zeichnen zview;
    public int info= 1;
    Timer t;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
          
            setContentView(R.layout.activity_main);
            Button Umschalten1 = (Button) findViewById(R.id.Umschalten);
            Umschalten1.setOnClickListener((OnClickListener) this);
            
        }
    public void addieren(){
        ProgressBar Fortschritt1 = (ProgressBar) findViewById(R.id.progressBar1);
        if (Fortschritt1.getProgress() == 8) {
            t.cancel();
            setContentView(R.layout.layout2);
            info = 0;
            zview.onDraw(null);
            
        }
            else
        Fortschritt1.setProgress(Fortschritt1.getProgress()+1);
        }
    
    
        
@Override
        public void onClick(View arg0) {
            t = new Timer();
            t.schedule(new Zeitgeber(),0, 3 * 1000);    
            // TODO Auto-generated method stub
            
        }
    }
    
class Zeitgeber extends TimerTask{
    
    public void run() {
        MainActivity a = new MainActivity();
        try {
            a.addieren();
        
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        }
    }
Zeichnen:
Code:
package de.tobi.medien;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.AttributeSet;
import android.widget.ImageView;

public class Zeichnen extends ImageView{
    
    
   
    public Zeichnen(Context context, AttributeSet attrs) {
        super(context, attrs);        
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        MainActivity a = new MainActivity();
        int tester = a.info;
        
        if (tester == 0) {
        Paint pinsel = new Paint();
        pinsel.setColor(Color.rgb(64, 64, 255));
        pinsel.setStrokeWidth(5);
        Bitmap bild1 = BitmapFactory.decodeResource(getResources(), R.drawable.bild1);
        canvas.drawBitmap(bild1, getMatrix(), null);
        
        
       
        
        }
    
}
}
LayoutMain:
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/Umschalten"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:text="Orte!" />

    <ProgressBar
        android:id="@+id/progressBar1"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:max="8"
        android:progress="0" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/Umschalten"
        android:layout_marginTop="55dp"
        android:text="Handynummer:" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="500dp"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/progressBar1"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="33dp"
        android:ems="10" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="500dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText2"
        android:layout_alignBottom="@+id/editText2"
        android:layout_toLeftOf="@+id/editText2"
        android:ems="10" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_toRightOf="@+id/editText1"
        android:text="GPS Daten?:" />

</RelativeLayout>
Layout2:
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:id="@+id/layout2">
    
   <de.tobi.medien.Zeichnen
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:background="#ffffff"
    />

</LinearLayout>
Wenn ich die App im Emulator starte, kommt einfach nichts, nur ein weißer Bildschirm!

Errors im Debugger:
05-08 14:54:09.405: E/AndroidRuntime(765): FATAL EXCEPTION: main
05-08 14:54:09.405: E/AndroidRuntime(765): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.tobi.medien/de.tobi.medien.MainActivity}: java.lang.ClassCastException: de.tobi.medien.MainActivity cannot be cast to android.view.View$OnClickListener
05-08 14:54:09.405: E/AndroidRuntime(765): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
05-08 14:54:09.405: E/AndroidRuntime(765): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-08 14:54:09.405: E/AndroidRuntime(765): at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-08 14:54:09.405: E/AndroidRuntime(765): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-08 14:54:09.405: E/AndroidRuntime(765): at android.os.Handler.dispatchMessage(Handler.java:99)
05-08 14:54:09.405: E/AndroidRuntime(765): at android.os.Looper.loop(Looper.java:137)
05-08 14:54:09.405: E/AndroidRuntime(765): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-08 14:54:09.405: E/AndroidRuntime(765): at java.lang.reflect.Method.invokeNative(Native Method)
05-08 14:54:09.405: E/AndroidRuntime(765): at java.lang.reflect.Method.invoke(Method.java:511)
05-08 14:54:09.405: E/AndroidRuntime(765): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-08 14:54:09.405: E/AndroidRuntime(765): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-08 14:54:09.405: E/AndroidRuntime(765): at dalvik.system.NativeStart.main(Native Method)
05-08 14:54:09.405: E/AndroidRuntime(765): Caused by: java.lang.ClassCastException: de.tobi.medien.MainActivity cannot be cast to android.view.View$OnClickListener
05-08 14:54:09.405: E/AndroidRuntime(765): at de.tobi.medien.MainActivity.onCreate(MainActivity.java:30)
05-08 14:54:09.405: E/AndroidRuntime(765): at android.app.Activity.performCreate(Activity.java:5104)
05-08 14:54:09.405: E/AndroidRuntime(765): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-08 14:54:09.405: E/AndroidRuntime(765): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-08 14:54:09.405: E/AndroidRuntime(765): ... 11 more

irgendwas am Click listener aber was?

Edit:

Kaum hat mans abgeschickt:
Die Schnittstelle für den listener fehlte...
Aber jetzt stürtzt es beim Klicken ab!
 
Zuletzt bearbeitet:
MainActivity a = new MainActivity();
try { a.addieren();

funktioniert nicht da du kein neues MainAcitivity Objekt bauen darfst!
Du musst das vorhandene nehmen.
z.B. in dem du einen Constructor in deine Zeitgeber Klasse baust der die Activity als Parameter bekommt.

Code:
class Zeitgeber extends TimerTask{ 

private final MainAcitivy mainActivity;

public Zeitgeber(MainActivity mainactivity) {
this.mainActivity = mainActivity;
}
         
public void run() {             
try {             
mainActivity.addieren();                               
} catch (Exception e) {             
e.printStackTrace();         
}        
 }     
}
weiter oben dann:
t.schedule(new Zeitgeber(this),0, 3 * 1000);


Das hab ich jetzt ohne testen mal eben so hier hingeschrieben.
Musste mal gucken ob das schon hilft.
 
  • Danke
Reaktionen: paxis
Ja danke!
Jetzt funktionierts!
Nur irgendwie will es trotzdem nciht sinngemäß laufen...
Mal schauen, dir aber tausend Dank!

So siehts zur Zeit aus:
Code:
public void onClick(View arg0) {
            t = new Timer();
            t.schedule(new Zeitgeber(this, null),0, 50);    
            // TODO Auto-generated method stub
            
        }
    }
    
class Zeitgeber extends TimerTask{
    
    private final MainActivity mainActivity;

    public Zeitgeber(MainActivity mainactivity, MainActivity mainActivity) {
    this.mainActivity = mainActivity;
    }
             
    public void run() {             
    try {             
    mainActivity.addieren();                               
    } catch (Exception e) {             
    e.printStackTrace();         
    }        
     }     
    }
 
Zuletzt bearbeitet von einem Moderator:
Warum hast du jetzt 2 mal MainActivity da mit drin?


Ah weil ich nen Tippfehler im meinem Code hatte -.-
lösche bitte das erste raus,

public Zeitgeber(MainActivity mainActivity)

so reicht.

Mein Tippfehler war, dass ich hier mainactivity stehen hatte und in der nächsten Zeile mainActivity.

Darf ich dir eine Frage stellen?
Kennst du den Unterschied zwischen Klasse und Objekt?

Ich find's ja echt gut wenn Menschen programmieren lernen wollen.
Nur leider fangen sie oft mit komplett übertriebenen "Projekten" an.
Ich würde halt nicht mit einer Android App anfangen, wenn ich Java noch nicht kann.
Kann man natürlich machen, nur oftmals landet man dann irgendwo, wo man Code irgendwo her zusammen kopiert ohne zu wissen was man da macht.
Damit lernt man halt nichts (eigene Erfahrung ;)).
 
  • Danke
Reaktionen: paxis
Joar, der Unterschied ist mir schon klar, ich programmiere in der Schule ^^ mit Delphi schon seit knapp 1.5 Jahren!
Da ich mich aber fürs Programmieren interessiere, probiere ich mir Java halt auch für Android, da ich da direkt eine konkretere Verwendung für habe, beizubringen!
Zudem bin ich leider sehr ungeduldig... . Meine unliebste Eigenschaft :D!

Aber zum Thema:
Ich hab das jetzt soweit, dass die Progress Bar voll geht, nur dann lädt der nicht das neue Layout!
Ich teste mal weiter und danke dir für deine Hilfe! Werde mich ggf. nochmal melden!

Der ursprüngliche Beitrag von 18:07 Uhr wurde um 19:10 Uhr ergänzt:

Also irgendwie verändret der das Layout nicht!

Jemand ne Idee wo der Fehler liegt? :confused:

Main:
Code:
package de.tobi.medien;


import java.util.Timer;
import java.util.TimerTask;


import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ProgressBar;

public class MainActivity extends Activity implements OnClickListener {
    private Zeichnen zview;
    public int info= 1;
    Timer t;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
          
            setContentView(R.layout.activity_main);
            Button Umschalten1 = (Button) findViewById(R.id.Umschalten);
            Umschalten1.setOnClickListener((OnClickListener) this);
            
        }
    public void addieren(){
        ProgressBar Fortschritt1 = (ProgressBar) findViewById(R.id.progressBar1);
        if (info == 8) {
            setContentView(R.layout.layout2);
            zview.onDraw(null);
            t.cancel();
            
            
        }
            else
        Fortschritt1.setProgress(Fortschritt1.getProgress()+1);
        info =+1;
        }
    
    
    
        @Override
        public void onClick(View arg0) {
        
          
            if (info < 8) {
            t = new Timer();
            t.schedule(new Zeitgeber(this),0, 50);    
            
            }
            else
            {
                 setContentView(R.layout.layout2);
                    zview.onDraw(null);
                    
            }
        }
    }
    
class Zeitgeber extends TimerTask{
    
    private final MainActivity mainActivity;

    public Zeitgeber( MainActivity mainActivity) {
    this.mainActivity = mainActivity;
    }
             
    public void run() {             
    try {             
    mainActivity.addieren();                               
    } catch (Exception e) {             
    e.printStackTrace();         
    }        
     }     
    }

2.te
Code:
package de.tobi.medien;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.AttributeSet;
import android.widget.ImageView;

public class Zeichnen extends ImageView{
    
    private MainActivity a;
   
    public Zeichnen(Context context, AttributeSet attrs) {
        super(context, attrs);        
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        
        int tester = a.info;
        
        if (tester == 8) {
        Paint pinsel = new Paint();
        pinsel.setColor(Color.rgb(64, 64, 255));
        pinsel.setStrokeWidth(5);
        Bitmap bild1 = BitmapFactory.decodeResource(getResources(), R.drawable.bild1);
        canvas.drawBitmap(bild1, getMatrix(), null);
        
        
       
        
        }
    
}
}

irgendwo muss nen Denkfehler sein, der geht das Ding durch, aber ändert das dann nicht...
 
Wenn ich das richtig sehe dürfte das nicht durchlaufen.
zview wird von dir ja niemals gesetzt.
Und selbst wenn du das gesetzt hättest hast du spätestens hier:

canvas.drawBitmap(bild1, getMatrix(), null);

eine NullPointerException.

Weil du die onDraw() Methode immer mit null als parameter aufrufst.
heißt canvas ist null bei dir und damit kannst du sowieso nix damit anfangen.

Dazu kommt noch, dass du die onDraw Methode eigentlich nicht selbst aufrufen musst.

Ich weiß auch nicht was in deine layout2 drin ist.

eigentlich musst du nur in deiner mainActivity
setContextView(new Zeichnen(this, null));
aufrufen.
Dann baust du ein Zeichnen Objekt das dann als ContentView gesetzt wird und wenn ich mich jetzt nicht irre zeichnet der das dann automatisch.

Du musst verstehen du hast eine Zeichnen Klasse die ein ImageView ist (bzw davon erbt).
So die Activityhat eine Methode mit der man ein View Objekt als ContentView setzen kann.

Wobei ich gerade in deiner Zeichnen Klasse wieder was sehe was nicht funktioniert.

int tester = a.info;

a ist an dieser Stelle wieder null bzw nicht definiert.
das wird niemals gesetzt.
Aber mit dem was du vorhast brauchst du das hier auch gar nicht, du prüfst ja nochmal ob ob der tester bei 8 ist. Aber das machst du ja vorher schon in deiner Activity.
Und es wiederspricht ein wenig dem Gedanken das man Klassen auch wiederverwenden können soll.

So wie du das versuchst kannst du deine Zeichnen Klasse NUR zusammen mit deiner MainActivity.
 
  • Danke
Reaktionen: paxis
Also Tester wird mit jedem Timer durchgang um 1 erhöht und sollte eigentlich bei 8 enden:
Code:
 <ProgressBar
        android:id="@+id/progressBar1"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:max="8"

Dann habe ich das gerade so umgeschrieben:
Code:
package de.tobi.medien;


import java.util.Timer;
import java.util.TimerTask;


import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ProgressBar;

public class MainActivity extends Activity implements OnClickListener {
    private Zeichnen zview;
    public int info= 1;
    Timer t;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
          
            setContentView(R.layout.activity_main);
            Button Umschalten1 = (Button) findViewById(R.id.Umschalten);
            Umschalten1.setOnClickListener((OnClickListener) this);
            
        }
    public void addieren(){
        ProgressBar Fortschritt1 = (ProgressBar) findViewById(R.id.progressBar1);
        if (info == 8) {
            setContentView(new Zeichnen(this, null));
            t.cancel();
            
            
        }
            else
        Fortschritt1.setProgress(Fortschritt1.getProgress()+1);
        info =+1;
        }
    
    
    
        @Override
        public void onClick(View arg0) {
        
          
            if (info < 8) {
            t = new Timer();
            t.schedule(new Zeitgeber(this),0, 50);    
            
            }
            else
            {
                 
                 setContentView(new Zeichnen(this, null));
                    
            }
        }
    }
    
class Zeitgeber extends TimerTask{
    
    private final MainActivity mainActivity;

    public Zeitgeber( MainActivity mainActivity) {
    this.mainActivity = mainActivity;
    }
             
    public void run() {             
    try {             
    mainActivity.addieren();                               
    } catch (Exception e) {             
    e.printStackTrace();         
    }        
     }     
    }

In meiner Layout 2 steht folgendes:
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:id="@+id/layout2">
    
   <de.tobi.medien.Zeichnen
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:background="#ffffff"
    />

</LinearLayout>

die zweite Klasse kann doch so bleiben:
Code:
package de.tobi.medien;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.AttributeSet;
import android.widget.ImageView;

public class Zeichnen extends ImageView{
    
    private MainActivity a;
   
    public Zeichnen(Context context, AttributeSet attrs) {
        super(context, attrs);        
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        
        int tester = a.info;
        
        if (tester == 8) {
        Paint pinsel = new Paint();
        pinsel.setColor(Color.rgb(64, 64, 255));
        pinsel.setStrokeWidth(5);
        Bitmap bild1 = BitmapFactory.decodeResource(getResources(), R.drawable.bild1);
        canvas.drawBitmap(bild1, getMatrix(), null);
        
        
       
        
        }
    
}
}

Oder?

Danke dir schonmal :))))!
 
Ich probiere gerade folgendes:
eine Methode:
Code:
public void ausschalten () {
         TextView Test = (TextView) findViewById(R.id.test1);
         Test.setVisibility(4);
        
         TextView Test3 = (TextView) findViewById(R.id.textView1);
         Test3.setVisibility(4);    
        
         EditText Test5 = (EditText) findViewById(R.id.editText2);
         Test5.setVisibility(4);
        
         EditText Test51 = (EditText) findViewById(R.id.textView2);
            Test51.setVisibility(0);
    }

Wenn ich das mit Test51 weglasse, funktioniert die anwendung!
Wenn ich das so lasse, würde sie abstürzen!

Errors:
Code:
05-08 21:05:08.980: E/ActivityThread(617): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d051a8 that was originally bound here
05-08 21:05:08.980: E/ActivityThread(617): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d051a8 that was originally bound here
05-08 21:05:08.980: E/ActivityThread(617):     at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
05-08 21:05:08.980: E/ActivityThread(617):     at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
05-08 21:05:08.980: E/ActivityThread(617):     at android.app.ContextImpl.bindService(ContextImpl.java:1418)
05-08 21:05:08.980: E/ActivityThread(617):     at android.app.ContextImpl.bindService(ContextImpl.java:1407)
05-08 21:05:08.980: E/ActivityThread(617):     at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
05-08 21:05:08.980: E/ActivityThread(617):     at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
05-08 21:05:08.980: E/ActivityThread(617):     at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
05-08 21:05:08.980: E/ActivityThread(617):     at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
05-08 21:05:08.980: E/ActivityThread(617):     at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
05-08 21:05:08.980: E/ActivityThread(617):     at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
05-08 21:05:08.980: E/ActivityThread(617):     at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
05-08 21:05:08.980: E/ActivityThread(617):     at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
05-08 21:05:08.980: E/ActivityThread(617):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-08 21:05:08.980: E/ActivityThread(617):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-08 21:05:08.980: E/ActivityThread(617):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-08 21:05:08.980: E/ActivityThread(617):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-08 21:05:08.980: E/ActivityThread(617):     at java.lang.Thread.run(Thread.java:856)
05-08 21:05:09.010: E/StrictMode(617): null
05-08 21:05:09.010: E/StrictMode(617): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d051a8 that was originally bound here
05-08 21:05:09.010: E/StrictMode(617):     at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
05-08 21:05:09.010: E/StrictMode(617):     at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
05-08 21:05:09.010: E/StrictMode(617):     at android.app.ContextImpl.bindService(ContextImpl.java:1418)
05-08 21:05:09.010: E/StrictMode(617):     at android.app.ContextImpl.bindService(ContextImpl.java:1407)
05-08 21:05:09.010: E/StrictMode(617):     at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
05-08 21:05:09.010: E/StrictMode(617):     at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
05-08 21:05:09.010: E/StrictMode(617):     at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
05-08 21:05:09.010: E/StrictMode(617):     at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
05-08 21:05:09.010: E/StrictMode(617):     at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
05-08 21:05:09.010: E/StrictMode(617):     at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
05-08 21:05:09.010: E/StrictMode(617):     at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
05-08 21:05:09.010: E/StrictMode(617):     at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
05-08 21:05:09.010: E/StrictMode(617):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-08 21:05:09.010: E/StrictMode(617):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-08 21:05:09.010: E/StrictMode(617):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-08 21:05:09.010: E/StrictMode(617):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-08 21:05:09.010: E/StrictMode(617):     at java.lang.Thread.run(Thread.java:856)
05-08 21:05:09.010: W/ActivityManager(294): Unbind failed: could not find connection for android.os.BinderProxy@4103f060
05-08 21:05:09.039: E/ActivityThread(617): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d04db0 that was originally bound here
05-08 21:05:09.039: E/ActivityThread(617): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d04db0 that was originally bound here
05-08 21:05:09.039: E/ActivityThread(617):     at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
05-08 21:05:09.039: E/ActivityThread(617):     at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
05-08 21:05:09.039: E/ActivityThread(617):     at android.app.ContextImpl.bindService(ContextImpl.java:1418)
05-08 21:05:09.039: E/ActivityThread(617):     at android.app.ContextImpl.bindService(ContextImpl.java:1407)
05-08 21:05:09.039: E/ActivityThread(617):     at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
05-08 21:05:09.039: E/ActivityThread(617):     at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
05-08 21:05:09.039: E/ActivityThread(617):     at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
05-08 21:05:09.039: E/ActivityThread(617):     at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
05-08 21:05:09.039: E/ActivityThread(617):     at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
05-08 21:05:09.039: E/ActivityThread(617):     at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
05-08 21:05:09.039: E/ActivityThread(617):     at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
05-08 21:05:09.039: E/ActivityThread(617):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-08 21:05:09.039: E/ActivityThread(617):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-08 21:05:09.039: E/ActivityThread(617):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-08 21:05:09.039: E/ActivityThread(617):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-08 21:05:09.039: E/ActivityThread(617):     at java.lang.Thread.run(Thread.java:856)
05-08 21:05:09.059: E/StrictMode(617): null
05-08 21:05:09.059: E/StrictMode(617): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d04db0 that was originally bound here
05-08 21:05:09.059: E/StrictMode(617):     at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
05-08 21:05:09.059: E/StrictMode(617):     at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
05-08 21:05:09.059: E/StrictMode(617):     at android.app.ContextImpl.bindService(ContextImpl.java:1418)
05-08 21:05:09.059: E/StrictMode(617):     at android.app.ContextImpl.bindService(ContextImpl.java:1407)
05-08 21:05:09.059: E/StrictMode(617):     at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
05-08 21:05:09.059: E/StrictMode(617):     at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
05-08 21:05:09.059: E/StrictMode(617):     at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
05-08 21:05:09.059: E/StrictMode(617):     at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
05-08 21:05:09.059: E/StrictMode(617):     at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
05-08 21:05:09.059: E/StrictMode(617):     at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
05-08 21:05:09.059: E/StrictMode(617):     at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
05-08 21:05:09.059: E/StrictMode(617):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-08 21:05:09.059: E/StrictMode(617):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-08 21:05:09.059: E/StrictMode(617):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-08 21:05:09.059: E/StrictMode(617):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-08 21:05:09.059: E/StrictMode(617):     at java.lang.Thread.run(Thread.java:856)
05-08 21:05:09.059: W/ActivityManager(294): Unbind failed: could not find connection for android.os.BinderProxy@41062540
05-08 21:05:12.476: E/ThrottleService(294): problem during onPollAlarm: java.lang.IllegalStateException: problem parsing stats: java.io.FileNotFoundException: /proc/net/xt_qtaguid/iface_stat_all: open failed: ENOENT (No such file or directory)
 
Deine Zeichne Klasse wird immer noch nicht funktionieren, da du hier a aufrufst aber a niemals gesetzt wird.
DU kannst aber die Prüfung if (tester == 8) einfach weglassen. weil das was du prüfen willst an dieser stelle immer 8 sein wird, weil du in der Mainactivity mit setcontentview das Zeichnen nur setzt wenn dein info == 8 ist.

Davon abgesehen sind public variablen meistens eine schlechte Idee.
Aber du brauchst info sowieso nicht nach ausen geben
nur dein int tester = a.info wird nicht funktionieren.
Wie schon gesagt a wird dort niemals gesetzt, dein Programm weiß gar nicht wo es info herholen soll, weil hinter a kein Objekt steht. Du sagst zwar, dass a (die KLASSE) MainActivity ist aber du hast kein Objekt dieser Klasse auf das a zeigt.
 
Zurück
Oben Unten