2011-06-21 32 views
0

タッチスクリーン上でドラッグすることによって画面切り替え用のコードを試していましたが、エラーが発生しました...誰でもコード内で何をしたのか確認してください。エラーがタッチスクリーン上でドラッグして画面を切り替える

vf.setInAnimation(AnimationUtils.loadAnimation(この、 R.anim.push_left_in))で生じます。 vf.setInAnimation(AnimationUtils.loadAnimation(this、 R.anim.push_left_out)); .javaファイルの

の.xmlファイルのコード

<ViewFlipper android:id="@+id/details" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="#ffffff"> 

     <TextView android:id="@+id/tv_country" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#000000" 
      android:textStyle="bold" 
      android:textSize="18px" 
      android:text="Country" > 
     </TextView> 
     <Spinner android:text="" 
      android:id="@+id/spinner_country" 
      android:layout_width="200px" 
      android:layout_height="55px"> 
     </Spinner> 
    </LinearLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="#ffffff"> 

     <TextView android:id="@+id/tv_income" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#000000" 
      android:textStyle="bold" 
      android:textSize="18px" 
      android:text="Income" > 
     </TextView> 
     <EditText android:text="" 
      android:id="@+id/et_income" 
      android:layout_width="200px" 
      android:layout_height="55px"> 
     </EditText> 
    </LinearLayout> 

</ViewFlipper> 

コード

package com.examples.switchactivtybydragging; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.view.animation.*; 
import android.widget.ArrayAdapter; 
import android.widget.LinearLayout; 
import android.widget.Spinner; 
import android.widget.ViewFlipper; 

public class SwitchActivityByDraggingActivity extends Activity implements OnTouchListener { 
    /** Called when the activity is first created. */ 

    private float downXValue; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     LinearLayout layMain = (LinearLayout) findViewById(R.id.layout_main); 
     layMain.setOnTouchListener((OnTouchListener) this); 
     Spinner spinnerCountries = (Spinner) findViewById(R.id.spinner_country); 
     @SuppressWarnings({ "unchecked", "rawtypes" }) 
     ArrayAdapter countryArrayAdapter = new ArrayAdapter(this, 
        android.R.layout.simple_spinner_dropdown_item, 
        new String[] { "Canada", "USA" }); 
     spinnerCountries.setAdapter(countryArrayAdapter); 
    } 
    public boolean onTouch(View arg0, MotionEvent arg1) { 

     // Get the action that was done on this touch event 
     switch (arg1.getAction()) 
     { 
      case MotionEvent.ACTION_DOWN: 
      { 
       // store the X value when the user's finger was pressed down 
       downXValue = arg1.getX(); 
       break; 
      } 

      case MotionEvent.ACTION_UP: 
      { 
       // Get the X value when the user released his/her finger 
       float currentX = arg1.getX();    

       // going backwards: pushing stuff to the right 
       if (downXValue < currentX) 
       { 
        // Get a reference to the ViewFlipper 
        ViewFlipper vf = (ViewFlipper) findViewById(R.id.details); 
        // Set the animation 
         vf.setAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out)); 
         // Flip! 
         vf.showPrevious(); 
       } 

       // going forwards: pushing stuff to the left 
       if (downXValue > currentX) 
       { 
        // Get a reference to the ViewFlipper 
        ViewFlipper vf = (ViewFlipper) findViewById(R.id.details); 
        // Set the animation 
        vf.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_in)); 
         // Flip! 
        vf.showNext(); 
       } 
       break; 
      } 
     } 

     // if you return false, these actions will not be recorded 
     return true; 
    } 

} 
+0

表示されているエラー、理想的にはlogcatの完全なスタックトレースを含めてください。 –

+0

実際に私のAndroidのsdk .xmlファイルにはアニメーションがありません。それは私が使用しているpush_left_in.xmlとpush_left_out.xmlが見つかりませんでした。私はどのように私のSDKでこれを取得できますか? – AndroidDev

+0

あなたはアニメーションファイル? –

答えて

2

あなたの問題は、アニメーションを作成していないということです。コードを機能させるには、res/anim/push_left_in.xmlres/anim/push_left_out.xmlのアニメーションが必要です。これらのファイルが存在しないため、エラーが発生します。

私はSimple Animationsについてのブログシリーズを書いています。これは、これらのファイルを作成する方法と、それらに入れる必要があることを理解するのに役立ちます。

+0

ありがとうございます。 – AndroidDev

+0

ok mark..thanks a lot – AndroidDev

関連する問題