Android 图像按钮安卓开关bg图像
有人能告诉我为什么这不起作用吗?我一点错误都没有,只是不起作用 在我添加屏幕扫描之前,这实际上一直都很好,现在我想不出是什么错了 谢谢Android 图像按钮安卓开关bg图像,android,Android,有人能告诉我为什么这不起作用吗?我一点错误都没有,只是不起作用 在我添加屏幕扫描之前,这实际上一直都很好,现在我想不出是什么错了 谢谢 package com.sample.sample import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import
package com.sample.sample
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
public class PageOneFragment extends Fragment {
ImageButton btn1;
static int i = 0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(
R.layout.page1_layout, container, false);
btn1 = (ImageButton) rootView.findViewById(R.id.m1_btn);
return rootView;
}
public void setupPlayPauseButton1(View view) {
btn1 = (ImageButton) view.findViewById(R.id.m1_btn);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i +=1;
if (i % 2 == 0) {
btn1.setImageResource(R.drawable.pause);
} else {
btn1.setImageResource(R.drawable.play);
}
}
});
}
}
编辑
是这样吗
package com.wepromoteme.brapp;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
public class PageOneFragment extends Fragment {
ImageButton btn1;
int i = 0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(
R.layout.page1_layout, container, false);
btn1 = (ImageButton) rootView.findViewById(R.id.m1_btn);
setupPlayPauseButton1(rootView);
return rootView;
}
private void setupPlayPauseButton1(View view) {
btn1 = (ImageButton) view.findViewById(R.id.m1_btn);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
i +=1;
if (i % 2 == 0) {
btn1.setImageResource(R.drawable.pause);
} else {
btn1.setImageResource(R.drawable.play);
}
}
});
}
}
您没有告诉我什么“不起作用”,但我愿意猜测这是原因:static int I=0代码>
static这里意味着i
的值由PageOneFragment
的所有实例共享
如果在屏幕旋转等情况下使用static保持变量值,则应使用fragment方法。有关这方面的更多信息,请参见官方文档:
碰巧我已经弄明白了,我决定让我的大脑休息几个小时,因为我觉得我陷入了一个无法看到树木的螺旋式下降:p
这是我的代码,适用于任何遇到与我相同问题的人。这实际上是有效的:
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
public class PageTwoFragment extends Fragment {
int i = 0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(
R.layout.page2_layout, container, false);
final ImageButton btn1 = (ImageButton) rootView.findViewById(R.id.m1_btn);
final ImageButton btn2 = (ImageButton) rootView.findViewById(R.id.m2_btn);
final ImageButton btn3 = (ImageButton) rootView.findViewById(R.id.m3_btn);
final ImageButton btn4 = (ImageButton) rootView.findViewById(R.id.m4_btn);
final ImageButton btn5 = (ImageButton) rootView.findViewById(R.id.m5_btn);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i +=1;
if (i % 2 == 0) {
btn1.setImageResource(R.drawable.pause);
} else {
btn1.setImageResource(R.drawable.play);
}
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i +=1;
if (i % 2 == 0) {
btn2.setImageResource(R.drawable.pause);
} else {
btn2.setImageResource(R.drawable.play);
}
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i +=1;
if (i % 2 == 0) {
btn3.setImageResource(R.drawable.pause);
} else {
btn3.setImageResource(R.drawable.play);
}
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i +=1;
if (i % 2 == 0) {
btn4.setImageResource(R.drawable.pause);
} else {
btn4.setImageResource(R.drawable.play);
}
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i +=1;
if (i % 2 == 0) {
btn5.setImageResource(R.drawable.pause);
} else {
btn5.setImageResource(R.drawable.play);
}
}
});
return rootView;
}
}
“屏幕扫描”是什么意思?是吗?我一点错误都没有,只是不起作用。你需要有不同的想法。如果您没有错误,它将工作。从准确描述发生的事情开始。“不起作用”是一句无用的话。另外,请描述您在何处以及如何调用setupplaybausebutton1
屏幕滑动来自本教程,非常有用。谢谢,这确实是一个浏览页面。最好使用正确的名称;)@simon,抱歉,没有错误意味着我的ide eclipse没有抛出错误,应用程序构建得很好,但图像不会像使用时那样在单击时发生更改,但代码相同,但我已经添加了屏幕幻灯片。谢谢,我根本不想让屏幕旋转,并已将其设置为不旋转。我现在要看看这个。谢谢你只需删除static
,你也应该很好。作为个人品味,当应用程序无缘无故拒绝旋转时,我觉得有点恼火:phahah,是的,我有时也会这样做,但在这种情况下,该应用程序对纵向视图中的任何人都不是很有用。