2012-10-14 166 views
0

請幫我理解爲什麼我的應用程序未運行。 我想檢查滑動是否有效,但它甚至不會在模擬器上啓動。 由於我對編程非常陌生,因爲沒有編譯錯誤,所以我找不到有什麼問題。Android應用程序不會運行

靈敏度代碼: package enn.ericsson.sitezoeker;

import android.app.Activity; 
import android.os.Bundle; 
import android.view.GestureDetector; 
import android.view.GestureDetector.OnGestureListener; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.animation.Animation; 
import android.view.animation.AnimationUtils; 
import android.widget.ViewFlipper; 

public class MainActivity extends Activity { 

    ViewFlipper viewFlipper = GlobalVars.viewFlipper; 
    Animation slideLeftIn = GlobalVars.slideLeftIn; 
    Animation slideLeftOut = GlobalVars.slideLeftOut; 
    Animation slideRightIn = GlobalVars.slideRightIn; 
    Animation slideRightOut = GlobalVars.slideRightOut; 
    GestureDetector gestureDetector = GlobalVars.gestureDetector; 
    View.OnTouchListener gestureListener = GlobalVars.gestureListener; 

    public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     viewFlipper = (ViewFlipper) findViewById(R.id.flipper); 
     slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in); 
     slideLeftOut = AnimationUtils 
       .loadAnimation(this, R.anim.slide_left_out); 
     slideRightIn = AnimationUtils 
       .loadAnimation(this, R.anim.slide_right_in); 
     slideRightOut = AnimationUtils.loadAnimation(this, 
       R.anim.slide_right_out); 

     gestureListener = new View.OnTouchListener() { 
      public boolean onTouch(View v, MotionEvent event) { 
       if (gestureDetector.onTouchEvent(event)) { 
        return true; 
       } 
       return false; 
      } 
     }; 
     gestureDetector = new GestureDetector(this, 
       (OnGestureListener) gestureListener); 

    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     if (gestureDetector.onTouchEvent(event)) 
      return true; 
     else 
      return false; 
    } 

} 

GlobarVars.java: 包enn.ericsson.sitezoeker;

import android.app.Application; 
import android.view.GestureDetector; 
import android.view.View; 
import android.view.animation.Animation; 
import android.widget.ViewFlipper; 

public class GlobalVars extends Application { 

    private static GlobalVars vars; 

    public static GlobalVars getInstance() { 
     return vars; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     vars = this; 
    } 

    public static GestureDetector gestureDetector; 
    public static View.OnTouchListener gestureListener; 
    public static Animation slideLeftIn; 
    public static Animation slideLeftOut; 
    public static Animation slideRightIn; 
    public static Animation slideRightOut; 
    public static ViewFlipper viewFlipper; 

} 

MyGestureDetector類: 包enn.ericsson.sitezoeker;

import android.view.MotionEvent; 
import android.view.GestureDetector.SimpleOnGestureListener; 
import android.view.animation.Animation; 
import android.widget.ViewFlipper; 

class MyGestureDetector extends SimpleOnGestureListener { 

    ViewFlipper viewFlipper = GlobalVars.viewFlipper; 
    Animation slideLeftIn = GlobalVars.slideLeftIn; 
    Animation slideLeftOut = GlobalVars.slideLeftOut; 
    Animation slideRightIn = GlobalVars.slideRightIn; 
    Animation slideRightOut = GlobalVars.slideRightOut; 

    private static final int SWIPE_MIN_DISTANCE = 120; 
    private static final int SWIPE_MAX_OFF_PATH = 250; 
    private static final int SWIPE_THRESHOLD_VELOCITY = 200; 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
      float velocityY) { 
     try { 

      if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) 
       return false; 
      // right to left swipe 
      if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE 
        && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
       viewFlipper.setInAnimation(slideLeftIn); 
       viewFlipper.setOutAnimation(slideLeftOut); 
       viewFlipper.showNext(); 
      } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE 
        && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
       viewFlipper.setInAnimation(slideRightIn); 
       viewFlipper.setOutAnimation(slideRightOut); 
       viewFlipper.showPrevious(); 
      } 
     } catch (Exception e) { 
      // nothing 
     } 
     return false; 
    } 
} 

清單:

<?xml version="1.0" encoding="UTF-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    android:name=".GlobalVars" 
    package="enn.ericsson.sitezoeker" 
    android:installLocation="auto" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="15" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="me.user_interface.DisplayMessageActivity"/> 
    </application> 

</manifest> 

佈局:

<ScrollView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/View1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fillViewport="false" > 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <TextView 
        android:id="@+id/textView2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Provider:" 
        android:textAppearance="?android:attr/textAppearanceLarge" /> 

       <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 

        <RadioButton 
         android:id="@+id/rbKPN" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="KPN" /> 

        <RadioButton 
         android:id="@+id/rbTMobile" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="T-Mobile" /> 

        <RadioButton 
         android:id="@+id/rbVodafone" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="Vodafone" /> 
       </LinearLayout> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" > 

       <TextView 
        android:id="@+id/textView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Site number:" 
        android:textAppearance="?android:attr/textAppearanceLarge" /> 

       <EditText 
        android:id="@+id/txtSitenr" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:ems="10" 
        android:inputType="number" /> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" > 

       <TableRow 
        android:layout_width="match_parent" 
        android:layout_height="10dp" > 
       </TableRow> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="80dp" 
       android:orientation="horizontal" > 

       <TextView 
        android:id="@+id/textView3" 
        android:layout_width="72dp" 
        android:layout_height="wrap_content" 
        android:text="Address:" 
        android:textAppearance="?android:attr/textAppearanceMedium" /> 

       <TextView 
        android:id="@+id/lblAddress" 
        android:layout_width="231dp" 
        android:layout_height="71dp" 
        android:background="@drawable/draw" 
        android:inputType="none" 
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:textColor="#ffffff" /> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" > 

       <TableRow 
        android:layout_width="match_parent" 
        android:layout_height="10dp" > 
       </TableRow> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <TextView 
        android:id="@+id/textView4" 
        android:layout_width="72dp" 
        android:layout_height="wrap_content" 
        android:text="City:" 
        android:textAppearance="?android:attr/textAppearanceMedium" /> 

       <TextView 
        android:id="@+id/lblCity" 
       android:layout_width="231dp" 
       android:layout_height="71dp" 
       android:background="@drawable/draw" 
       android:inputType="none" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#ffffff" /> 
     </LinearLayout> 
    </LinearLayout> 
</ScrollView> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="false" 
    android:id="@+id/View2" > 

    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="80dp" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/textView31" 
       android:layout_width="72dp" 
       android:layout_height="wrap_content" 
       android:text="Site name:" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 

      <TextView 
       android:id="@+id/lblSiteName" 
       android:layout_width="231dp" 
       android:layout_height="71dp" 
       android:background="@drawable/draw" 
       android:inputType="none" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#ffffff" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 

      <TableRow 
       android:layout_width="match_parent" 
       android:layout_height="10dp" > 
      </TableRow> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/textView41" 
       android:layout_width="72dp" 
       android:layout_height="wrap_content" 
       android:text="Site type:" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 

      <TextView 
       android:id="@+id/lblSiteType" 
       android:layout_width="231dp" 
       android:layout_height="71dp" 
       android:background="@drawable/draw" 
       android:inputType="none" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#ffffff" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 

      <TableRow 
       android:layout_width="match_parent" 
       android:layout_height="10dp" > 
      </TableRow> 
     </LinearLayout> 
    </LinearLayout> 



</ScrollView> 

</ViewFlipper> 

RG, 埃裏克

+0

如果它崩潰,你需要找到和職位時,你得到錯誤顯示的logcat的消息。它應該是一些10-50線堆棧跟蹤。 – Tim

+0

你是否真的希望有人能夠篩選出所有這些,並猜測你所得到的編譯器錯誤?如果您要複製並粘貼整個應用程序的源代碼,那麼您至少可以爲我們提供堆棧跟蹤,對預期行爲與您所得行爲的解釋等。 –

回答

1

我只檢查了幾行代碼,但我注意到,你是不要撥打super.onCreate()(和您的onCreate方法應該是不publicprotected):

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

未能調用super.onCreate()拋出一個SuperNotCalledException。從onCreate文檔:

派生類必須通過打電話給超類的這個方法的實現。如果他們不這樣做,就會拋出異常。

如果您仍然需要幫助,則需要發佈新的LogCat錯誤。

0

在主要活動改變"public abstract class mainActivity""public class mainActivity" 然後換"protected void onCreate""public void onCreate。你還應該包括"super.onCreate(savedInstanceState);"在主activity.Guess中的onCreate類應該只是罰款。

+0

嗨, 我已經改變了代碼由薩姆和Mungaih的建議。 我已將CatLog添加到帖子中,因爲對我來說沒有任何變化。 所以我一定還在做錯事。 RG, 埃裏克 – Eric

+0

@Eric - 我沒有看到在您的文章中logcat中,請確保您添加它。 – Tim

0

我設法讓它工作。 問題是手勢檢測器的東西。 它甚至沒有調用類,我已經刪除了兩個,並使用TouchListener方法。

它現在刷卡,但只有一次,所以不是完全固定的,但要真的... :-)

相關問題