2012-05-23 22 views
0

这甚至有可能吗?我创建了这个视图脚本,我从xml布局的onClick中调用视图脚本。我之前创建了一个视图脚蹼,但由于某种原因,它不起作用。查看鳍状肢不翻动

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:cacheColorHint="@android:color/transparent" 
    android:orientation="vertical" > 

    <ViewFlipper 
     android:id="@+id/viewFlipper1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@null" 
     android:cacheColorHint="@android:color/transparent" > 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/vf_sample1_main" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:cacheColorHint="@android:color/transparent" 
      android:orientation="vertical" > 

      <include layout="@layout/headers_main" /> 

      <include layout="@layout/searchbar" /> 

      <TextView 
       android:id="@+id/sdfsd" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:gravity="center_horizontal" 
       android:maxHeight="85dp" 
       android:paddingBottom="10dp" 
       android:paddingTop="10dp" 
       onClick="gotoSomething" 
       android:singleLine="false" /> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:textColor="@color/aquablue" 
       android:textSize="15dp" 
       android:textStyle="bold" /> 

      <include layout="@layout/listview_item_row_now_playing_info" /> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:textColor="@color/aquablue" 
       android:textSize="15dp" 
       android:textStyle="bold" /> 

      <include layout="@layout/container_listview" /> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/vf_sdfsdfadf" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="@null" 
      android:cacheColorHint="@android:color/transparent" 
      android:orientation="vertical" > 

      <include layout="@layout/header_vf_asdfasdfadadafsd" /> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/vf_adsfasdfadsfasd" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="@null" 
      android:cacheColorHint="@android:color/transparent" 
      android:orientation="vertical" > 
     </LinearLayout> 

    </ViewFlipper> 

</LinearLayout> 

代码:

public class BeatSpotPrototypeActivity extends BaseListActivity { 
     private final String TAG = BeatSpotPrototypeActivity.class.getSimpleName(); 
     private ApplicationStateManager mAppStateMananger = ApplicationStateManager.GetInstance(); 
     private Context mCtx = null; 
     private boolean mIsInitalized = false; 
     private boolean mDataChanded= false; 
     private ViewFlipper mViewFlipper= null; 
     private DrawableManager mDrawManager = new DrawableManager(); 
     private enum ViewFlipperModes { 
      MAIN (0), 
      NOW_PLAYING (1), 
      SONG_INFORMATION (2); 

      private final int index; 

      ViewFlipperModes(int index) { 
       this.index = index; 
      } 

      public int index() { 
       return index; 
      } 
     } 
     </code> 
    <code> 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main_beatspot_activity); 

      if (!mIsInitalized) 
       init(); 
      else 
       mDataChanded = true; 
      showLoading(false); 

     } 

     private void init() { 
      mCtx           = this; 
      mIsInitalized         = true; 
      mViewFlipper         = (ViewFlipper)findViewById(R.id.viewFlipper); 
      fadeDrawables(); 
     } 


     public void gotoBeatspotMain(View v) { 
      mViewFlipper.setDisplayedChild(ViewFlipperModes.MAIN.index()); 
     } 

     public void gotoNowPlaying(View v) { 
      Log.d(TAG, mViewFlipper.getCurrentView().toString()); 
      mViewFlipper.setDisplayedChild(ViewFlipperModes.NOW_PLAYING.index()); 
     } 

     public void gotoSongDetails(View v) { 
      mViewFlipper.setDisplayedChild(ViewFlipperModes.SONG_INFORMATION.index()); 
      Log.d(TAG, String.valueOf(ViewFlipperModes.SONG_INFORMATION.index())); 
     } 

    } 
+0

能不能请你放下你的活动代码下来?我想看看你是如何做到的。 – sdfwer

+0

@sdfwer我会在一秒钟后发布代码。 – James

回答

1

之前,您的onCreate创建

ViewFlipper mViewFlipper = (ViewFlipper)findViewbyId(location); 

(),或在onStart

确保无论您对的setContentView(R.layout.something)布局 确实包含视图鳍

也试试这个给我。在这行之前mViewFlipper.setDisplayedChild(ViewFlipperModes.MAIN.index()); 式中:

int i = (ViewFlipperModes.MAIN.index()); place a debug point here 
mViewFlipper.setDisplayedChild(i); 

我也建议使用调试器,试图找出是否您的意见翻转事件被称为内部调试器。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/book_as_whole_Layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="#FFFFFF"> 

    <ViewFlipper 
      android:layout_marginTop="20dip" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/ViewFlipper"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

     <TextView 
      android:id="@+id/page1" 
      android:text="@string/loading_string" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:textColor="#000000" 
      android:typeface="serif"/> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
     <TextView 
      android:id="@+id/page2" 
      android:text="@string/loading_string" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:textColor="#000000" 
      android:typeface="serif" /> 
     </LinearLayout> 

    </ViewFlipper> 


</LinearLayout> 
+0

我调试的视图实际上是根据调试器改变,但是,显示没有被更新。 – James

+0

另外,当我调试mViewFlipper确实包含我的三个布局。我将尝试在ui线程上运行它。 – James

+0

我已经厌倦了类似于上面代码的代码,并且我遇到了同样的问题。 – James

3

setDisplayedChild接受一个索引,而不是一个id。

+0

确实如此,但mViewFlipper.showNext();不工作? – James

+0

我改变了setDisplayChild(2),但什么也没有。我也尝试过showNext(),它仍然没有工作。 – James

+0

是的,他是对的。一个更简单的方法是,如果你有多个视图,例如。超过2 setDisplayedChild刚刚进入该视图,因为你给出了一个R.id.view,这在技术上是一个整数代码来找到适当的视图。它不会给出错误,但它仍然是错误的。 – sdfwer

相关问题