0

无论我在哪里单击 ImageView,onclick 方法都不会发生。我的意思是它没有重定向到我的 main.xml

//包名:双层

//我的cesem.XML:

//只是一个 Textview 和一个 Image View - 缩进四个空格。

<?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:padding="25dp"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Select Your Semester"
        android:textSize="25dp" 
        android:gravity="center"
        android:id="@+id/tvSemCe"
        android:layout_marginBottom="20dp"
   />

<ImageView
    android:id="@+id/back"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/back"
     />

</LinearLayout>




//Class file: Cesem.java


package com.bunk;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;

public class Cesem extends Activity implements OnClickListener{


    ImageView back;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cesem); // cesem.xml

        back=(ImageView) findViewById(R.id.back);// back is ImageView
        back.setOnClickListener(this);



    }
    public void onClick(View v) {
        // TODO Auto-generated method stub

        if (v == back) {
            setContentView(R.layout.main);
    }


    }
}
4

3 回答 3

0

尝试将元素设置为可点击:

back.setClickable(true);

或者,由于点击回调的内容(setContentView..),您可能看不到反馈

尝试在点击回调中记录一些内容,例如

 public void onClick(View v) {
    // TODO Auto-generated method stub

    if (v == back) {
        Toast.makeText(this, "Click", Toast.LENGTH_SHORT).show();
        setContentView(R.layout.main);
    }
 }
于 2012-06-27T15:40:48.410 回答
0
if (v.getId() == R.id.back)

代替

if (v == back)
于 2012-06-27T15:44:04.530 回答
0

将您的代码更改为:

public class Cesem extends Activity implements OnClickListener{

    ImageView back;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cesem); // cesem.xml

        back=(ImageView) findViewById(R.id.back);// back is ImageView
        back.setOnClickListener(this);
    }
    public void onClick(View v) {
        // TODO Auto-generated method stub

        if (v.getId() == R.id.back) {
           Toast.makeText(getApplicationContext(), "Toast 1",Toast.LENGTH_SHORT).show();
            Activity.this.setContentView(R.layout.main);
            }
            else
            {
              Toast.makeText(getApplicationContext(), "Toast 2",Toast.LENGTH_SHORT).show();
            }
    }
   }
}

并在清单中将您的活动注册为:

 <activity
            android:name=".Cesem" />
于 2012-06-27T15:55:24.543 回答