我的活动中有2个布局,如果从第一个布局点击ImageView“show”,第二个布局应该显示,但是这里没有发生,所以给了编码纠正但是无法解决这个问题 这是我的代码
public class About extends Activity {
LinearLayout line1, line2;
ImageView show;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
line1=(LinearLayout) findViewById(R.id.ll1);
line2=(LinearLayout)findViewById(R.id.ll2);
show=(ImageView)findViewById(R.id.ss);
show.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
show.setVisibility(View.VISIBLE);
// TODO Auto-generated method stub
line1.setVisibility(View.VISIBLE);
if (line2.getVisibility() == View.INVISIBLE || line2.getVisibility() == View.GONE) {
line2.setVisibility(View.VISIBLE); }
else {
line2.setVisibility(View.INVISIBLE);
}
}
});
Xml布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black" >
<LinearLayout
android:id="@+id/ll1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/black"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true">
<ImageView
android:id="@+id/ss"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/menu"
android:clickable="true" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll2"
android:layout_width="199dp"
android:layout_height="wrap_content"
android:background="@color/black"
android:layout_toRightOf="@+id/ll1"
android:visibility="gone"
>
<ImageView
android:id="@+id/about"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_above="@+id/textView1"
android:layout_toLeftOf="@+id/jobs"
android:src="@drawable/about" />
<ImageView
android:id="@+id/jobs"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/jobs" />
<ImageView
android:id="@+id/log"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/log" />
<ImageView
android:id="@+id/home"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/home" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:0)
对于xml中的图像视图's',设置属性android:clickable =“true”。
或者更好,否则请在xml中使用ImageButton
代替ImageView
编辑 -
更改此
show=(ImageView)findViewById(R.id.ss);
到
show=(ImageView)findViewById(R.id.show);
答案 1 :(得分:0)
您错误地定义了ImageView
的ID,这就是您无法获得ImageView
的onClick事件的原因。
将ImageView
的ID更改为除R.id.show
以外的R.id.ss
,如下所示:
更改此
show=(ImageView)findViewById(R.id.ss);
到
show=(ImageView)findViewById(R.id.show);
<强>编辑:强>
尝试在onClick侦听器中显示和隐藏您的布局。
if (line2.getVisibility() == View.INVISIBLE || line2.getVisibility() == View.GONE) { line2.setVisibility(View.VISIBLE); line1.setVisibility(View.INVISIBLE); } else { line2.setVisibility(View.INVISIBLE); line1.setVisibility(View.VISIBLE); }