android Swipe evento nel widget di listview all'interno della scheda

Ho creato un'attività che mostra una listview e un'azione di scorrimento un'altra list viene visualizzata usando ViewFlipper. Il codice è riportto di seguito:

import android.app.Activity; import android.os.Bundle; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.MotionEvent; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import android.widget.ViewFlipper; import android.widget.AdapterView.OnItemClickListener; public class MainActivity extends Activity { 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; private GestureDetector gestureDetector; View.OnTouchListener gestureListener; private Animation slideLeftIn; private Animation slideLeftOut; private Animation slideRightIn; private Animation slideRightOut; private ViewFlipper viewFlipper; private ListView lv; private String[] city = { "Indore", "Bhopal", "Khargone", "Ujjain", "Nasik", "Pune", "Delhi", "Mumbai", "Noida", "Hyderabad", "Banglore", "Ajmer", "Goa", "Jaipur", "Nagpur", "" }; private String[] country = { "India", "Bhutan", "Kuwait", "USA", }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); lv = (ListView) findViewById(R.id.List01); ListView lv2 = (ListView) findViewById(R.id.List02); 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); gestureDetector = new GestureDetector(new MyGestureDetector()); gestureListener = new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { return true; } return false; } }; lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, city)); lv2.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, country)); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView arg0, View view, int position, long id) { // user clicked a list item, make it "selected" Toast.makeText(getBaseContext(), "Item Clicked", Toast.LENGTH_SHORT).show(); // selectedAdapter.setSelectedPosition(position); } }); lv2.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView arg0, View view, int position, long id) { // user clicked a list item, make it "selected" Toast.makeText(getBaseContext(), "Item List2 Clicked", Toast.LENGTH_SHORT).show(); // selectedAdapter.setSelectedPosition(position); } }); } class MyGestureDetector extends SimpleOnGestureListener { @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; } } @Override public boolean onTouchEvent(MotionEvent event) { if (gestureDetector.onTouchEvent(event)) return true; else return false; } } 

Sta funzionando f9 …

  • android google map Imansible get il client di fabbrica di connessione
  • Trova una posizione esterna della scheda SD
  • Come rendere trasparente la barra di navigazione
  • Non hai trovato la class sul path: dexpathlist
  • Nessuna attività trovata per gestire Intent com.android.camera.action.CROP
  • Installazione di un'applicazione Android non rioutput: il pacchetto com.my.app non dispone di certificati all'entrata AndroidManifest.xml
  • Ma quando posso inserirlo all'interno dell'altra attività del tabulatore con il seguente codice Il View Flipper non funziona quando viene inserito come contenuto (intento) nella scheda di un'altra tabulato (AppStart)

     import android.app.TabActivity; import android.content.Intent; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.widget.TabHost; public class AppStart extends TabActivity { /** Called when the activity is first created. */ static Drawable myImage; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); myImage = res.getDrawable(R.drawable.club); TabHost tabs = getTabHost(); tabs.setup(); TabHost.TabSpec spec = tabs.newTabSpec(null); Intent i = new Intent().setClass(this, MainActivity.class); spec = tabs.newTabSpec(null); spec.setContent(i); spec.setIndicator("Tab"); tabs.addTab(spec); } } 

    Il layout è il seguente: main_layout.xml

     <?xml version="1.0" encoding="utf-8"?> <ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/flipper" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/List01"/> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/List02" /> </LinearLayout> </ViewFlipper> 

    E main.xml come mostrato di seguito:

     <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent"> </FrameLayout> </LinearLayout> </TabHost> 

    Si prega di suggerire perché il gesto di scorrimento non funziona quando la stessa attività viene inserita nella scheda.

    Grazie

  • PhoneGap: Come ottengo l'id appView e lo passa in giro?
  • Come incorporare un clip YouTube in un WebView su Android
  • L'animation all'inizio dell'attività salta i fotogrammi
  • Imansible creare un nuovo progetto con la versione ADT 20
  • Spinner non applica l'attributo dropDownSelector
  • Che cosa ritorna un EditText.getText () in android se è vuoto?
  • One Solution collect form web for “android Swipe evento nel widget di listview all'interno della scheda”

     import android.app.Activity; import android.os.Bundle; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.MotionEvent; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import android.widget.ViewFlipper; import android.widget.AdapterView.OnItemClickListener; public class MainActivity extends Activity { 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; private GestureDetector gestureDetector; View.OnTouchListener gestureListener; private Animation slideLeftIn; private Animation slideLeftOut; private Animation slideRightIn; private Animation slideRightOut; private ViewFlipper viewFlipper; private ListView lv; private String[] city = { "Indore", "Bhopal", "Khargone", "Ujjain", "Nasik", "Pune", "Delhi", "Mumbai", "Noida", "Hyderabad", "Banglore", "Ajmer", "Goa", "Jaipur", "Nagpur", "" }; private String[] country = { "India", "Bhutan", "Kuwait", "USA", }; @ Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); lv = (ListView) findViewById(R.id.List01); ListView lv2 = (ListView) findViewById(R.id.List02); 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); ActivitySwipeDetector activitySwipeDetector = new ActivitySwipeDetector( this); //View on which gesture should function This is image view at bottom of listView on which flip gesture is performsd. flipBarBottom.setOnTouchListener(activitySwipeDetector); lv.setAdapter(new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, city)); lv2.setAdapter(new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, country)); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView arg0, View view, int position, long id) { // user clicked a list item, make it "selected" Toast.makeText(getBaseContext(), "Item Clicked", Toast.LENGTH_SHORT).show(); // selectedAdapter.setSelectedPosition(position); } }); lv2.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView arg0, View view, int position, long id) { // user clicked a list item, make it "selected" Toast.makeText(getBaseContext(), "Item List2 Clicked", Toast.LENGTH_SHORT).show(); // selectedAdapter.setSelectedPosition(position); } }); } public class ActivitySwipeDetector implements View.OnTouchListener { static final String logTag = "ActivitySwipeDetector"; private Activity activity; static final int MIN_DISTANCE = 100; private float downX, downY, upX, upY; public ActivitySwipeDetector(Activity activity) { this.activity = activity; } public void onRightToLeftSwipe() { Log.i(logTag, "RightToLeftSwipe!"); // activity.doSomething(); viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFlipper.showNext(); flipBarBottom.setBackgroundResource(R.drawable.flipstatus01); } public void onLeftToRightSwipe() { Log.i(logTag, "LeftToRightSwipe!"); viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut); viewFlipper.showPrevious(); flipBarBottom.setBackgroundResource(R.drawable.flipstatus02); // activity.doSomething(); } public void onTopToBottomSwipe() { Log.i(logTag, "onTopToBottomSwipe!"); // activity.doSomething(); } public void onBottomToTopSwipe() { Log.i(logTag, "onBottomToTopSwipe!"); // activity.doSomething(); } public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { downX = event.getX(); downY = event.getY(); return true; } case MotionEvent.ACTION_UP: { upX = event.getX(); upY = event.getY(); float deltaX = downX - upX; float deltaY = downY - upY; // swipe horizontal? if (Math.abs(deltaX) > MIN_DISTANCE) { // left or right if (deltaX < 0) { this.onLeftToRightSwipe(); return true; } if (deltaX > 0) { this.onRightToLeftSwipe(); return true; } } else { Log.i(logTag, "Swipe was only " + Math.abs(deltaX) + " long, need at least " + MIN_DISTANCE); } // swipe vertical? if (Math.abs(deltaY) > MIN_DISTANCE) { // top or down if (deltaY < 0) { this.onTopToBottomSwipe(); return true; } if (deltaY > 0) { this.onBottomToTopSwipe(); return true; } } else { Log.i(logTag, "Swipe was only " + Math.abs(deltaX) + " long, need at least " + MIN_DISTANCE); } return true; } } return false; } } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.