我在我的代码中实现微调器时遇到问题。不太确定它是如何工作的。但这里简要介绍了我想做什么。 (例如:点击微调器,你有2个选项“第2页”和“第3页”。所以,如果你点击“第2页”,它将转到第2页的新内容。有没有办法实现这一点?
我还有图像按钮可以转到下一页并返回。只想实现一个微调框,以便您可以更快地导航到不同的页面。
public class AppActivity extends Activity implements OnTouchListener {
private MediaPlayer mp;
ImageButton button;
ImageButton button3;
ImageView imgView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final String[] spstr = getResources().getStringArray(R.array.spinnervalue);
final Spinner sp = (Spinner)findViewById(R.id.spinner1);
final ArrayAdapter<String> ar = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,spstr);
sp.setAdapter(ar);
sp.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String s=((TextView)view).getText().toString();
if(s.equals("page2"))
startActivity(new Intent(view.getContext(),App2Activity.class));
if(s.equals("page3"))
startActivity(new Intent(view.getContext(),App3Activity.class));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
public void addListenerOnButton() {
final Context context = this;
button3 = (ImageButton) this.findViewById(R.id.imageButton5);
button3.setOnTouchListener(this);
mp = MediaPlayer.create(this, R.raw.vanilla_twilight);
button = (ImageButton) findViewById(R.id.imageButton1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(context, App2Activity.class);
startActivity(intent);
}
});
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
MediaPlayer mp = MediaPlayer.create(getBaseContext(),
R.raw.vanilla_twilight);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
};
return true;
}
}
XML
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
Logcat错误
05-22 01:32:40.058:E / SpannableStringBuilder(16206):SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度 05-22 01:32:40.058:E / SpannableStringBuilder(16206):SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
资源
第2页
第3页
答案 0 :(得分:1)
使用startActivity
打开其他活动,需要基本的Intent
sp.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
String s=((TextView)arg1).getText().toString();
if(s.equals("page2"))
startActivity(new Intent(view.getContext(), AppActivity2.class));
if(s.equals("page3"))
startActivity(new Intent(view.getContext(), AppActivity3.class));
}
});
您的资源数组可能无法正确设置。
看起来应该类似于:
<string-array name="spinnervalue">
<item>page2</item>
<item>page3</item>
</string-array>
答案 1 :(得分:0)
我同意@ mrres1。您应该为每个屏幕(或Fragments
)创建单独的活动。 <{1}}不会做任何事情。
您还可以考虑实施下拉列表setContentView(layout)
(example here)。
答案 2 :(得分:0)
我建议考虑碎片。 http://developer.android.com/guide/components/fragments.html
或者为了轻松实现它,您可以使用ActionBarSherlock库。 http://actionbarsherlock.com