0

茶色の背景の相対的なレイアウトしか含まれていないアクティビティがあり、ユーザーが画面のどこかをクリックした場合に別のアクティビティを開始したいのですが、どうすればよいですか??

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainscreen);
    }
4

3 に答える 3

2

まず、レイアウト ファイルを配置して ID を付与しますRelativeLayoutandroid:id="@+id/relativeLayout"

RelativeLayout l = (RelativeLayout) findViewById(R.id.relativeLayout1);
l.setOnClickListener(new View.OnClickListener()
{

    public void onClick(View v)
    {
       // startActivity here

    }
});

またはアクティビティをRelativeLayout実装するだけで使用せずにonTouchEvent(MotionEvent)

public boolean onTouchEvent(MotionEvent event)
{
    if(event.getAction() == MotionEvent.ACTION_UP)
    {
        // start activity
    }
    return super.onTouchEvent(event);
}

注: このコードはまだ試していません。

于 2012-10-24T07:37:54.747 に答える
1

レイアウト xml に onClick 属性を追加し、アクティビティに onClick メソッドを実装して、新しいアクティビティを開始します。

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

アクティビティに onClick メソッドを追加します。

public void OnClick(View v) {
  startActivity(new Intent(this,MyNewActivity.class));
}
于 2012-10-24T07:36:17.147 に答える
1

メインスクリーンには、線形、相対、フレームのいずれかの親レイアウトがあると思います。それを参照して、クリックリスナーを処理します。

例: 親レイアウトが線形の場合。

LinearLayout linear=(LinearLayout)findViewById(R.id.linear);

 linear.setOnClickListener(this);
于 2012-10-24T07:37:21.880 に答える