0

我在代码中实现微调器时遇到问题。不太确定它是如何工作的。但这里是我想要做的一个简短的想法。(例如:单击微调器,您有 2 个选项“第 2 页”和“第 3 页”。因此,如果您单击“第 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 跨度不能有零长度

资源 page2 page3

4

3 回答 3

1

用于startActivity打开其他Activity,需要一个基本的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>

于 2013-05-22T03:28:45.510 回答
0

我同意@mrres1。您应该为每个屏幕(或Fragments)为每个屏幕创建单独的活动。setContentView(layout)不会做任何事情是不允许的。

您还可以考虑实施 Dropdown ActionBar此处为示例)。

于 2013-05-22T02:18:30.650 回答
0

我建议考虑片段。 http://developer.android.com/guide/components/fragments.html

或者为了轻松实现它,您可以使用 ActionBarSherlock 库。 http://actionbarsherlock.com

于 2013-05-22T02:24:16.047 回答