3

我有不同的屏幕可以在 android 应用程序中工作。我为此使用 ViewFlipper。我决定为不同观点的孩子使用不同的班级

public main extends Activity{
{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sign_in);
    ViewFlipper viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);

HomeScreen s = new HomeScreen(getApplicationContext(), getCurrentFocus(), viewFlipper);
  }
} 

而这个主屏幕类是: -

public class HomeScreen {
private Button signIn;
private Button createAccount;
private View v;
private Context context;
private ViewFlipper viewflipper;

public HomeScreen(Context context,View v,ViewFlipper viewflipper ) {
 this.v=v;
 this.context = context;
 this.viewflipper = viewflipper;


 signIn = (Button) v.findViewById(R.id.button_sign_in_homeScreen);
 createAccount = (Button)v.findViewById(R.id.button_createAccount_homeScreen);
 signIn.setOnClickListener(new View.OnClickListener() {
 public void onClick(View v) {
   viewflipper.setDisplayedChild(1);
  }
 });   
}

但是显示运行异常 java.lang.RuntimeException: Unable to start activity ComponentInfo 谁能帮我
getCurrentFocus() 是获取视图的正确方法吗?


我试图实现的是

  • 我需要使用不同的类来定义,监听视图鳍状肢的每个孩子的控件
  • 在上面的示例中,HomeScreen 是我的视图翻转器的子屏幕之一
  • 但是该行v.findViewById显示错误我认为 getCurrentFocus() 不是发送视图的正确方法

我不知道天气我正在以正确的方式移动?当我在定义该 viewflpper 的类中定义并收听 viewflipper 的所有子项的所有控件时,该类变得非常大。这让我这么想。。

谢谢...

4

1 回答 1

4

您可以使用 Intent 执行动画以:

Step1:在你的项目的res目录下创建anim文件夹。

Step2:创建slideleft.xml文件

Step3:在该文件中键入以下代码

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromXDelta="100%p" android:toXDelta="0"
        android:duration="400" />
</set>

第 4 步:同样创建 slideright.xml

step5:使用上面的代码,但是改变如下

<translate android:fromXDelta="-100%p" android:toXDelta="0"
            android:duration="400" />

第 6 步:

 target.startAnimation(AnimationUtils.loadAnimation(HomeScreen.this, R.anim.slide_left));

执行淡入淡出操作,只需在fadein.xml文件中添加以下代码

<?xml version="1.0" encoding="utf-8"?>

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:fromAlpha="0.0" android:toAlpha="1.0"
       android:duration="300" />

同样淡出

<?xml version="1.0" encoding="UTF-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:fromAlpha="1.0" android:toAlpha="0.0"
       android:duration="300" />
于 2010-10-29T13:08:24.373 回答