使用按钮单击一个按钮在微调器上执行不同的任务

Performing different tasks on spinner with buttonClick of one button

我想构建一个使用微调器和按钮的简单 android 应用程序。微调器包含两个项目。 项目 1->Google ITEM2-> 雅虎 我想: 如果我从微调器中 select Item1(Google) 并单击按钮,它会重定向到 android 中 WebView 中的 google.com,并且 如果我从微调器 select Item2(Yahoo) 并单击相同的按钮,它会重定向到 yahoo.com.

这是我的 xml 代码:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="158dp" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="72dp"
        android:onClick="onClick"
        android:text="@string/buttn" />

</RelativeLayout>

微调器的价值项目:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="section">
        <item>Google</item>
        <item>Yahoo</item>

    </string-array>
</resources>

Java代码:

public class FirstPage extends ActionBarActivity implements OnItemSelectedListener
{


        Spinner sp;
        Button buttn;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.firstpage);
            buttn= (Button) findViewById(R.id.button1);
            sp = (Spinner) findViewById(R.id.spinner1);
            ArrayAdapter<CharSequence> ar = ArrayAdapter.createFromResource(this, R.array.section, android.R.layout.simple_list_item_1);
            ar.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
            sp.setAdapter(ar);

            addListenerOnButton();
        }


        private void addListenerOnButton() 
        {
            buttn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    try{
                    sp = (Spinner) findViewById(R.id.spinner1);
                    buttn= (Button) findViewById(R.id.button1);
                    }
                }
            });

        }

            public void onItemSelected(AdapterView<?> parent, View view, 
                    int pos, long id) {

            }

            public void onNothingSelected(AdapterView<?> 
            }
        }

我不知道该怎么做。 任何人都请帮帮我。 谢谢

如果你问的是如何开始浏览,而你的监听器已经在工作,那么我会试试这个:

   Intent browse = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
    startActivity(browse);

你也可以see more questions about your problem

此外,微调器与 onClickListener 配合不佳,如 this post 所示,我建议使用其他方法,例如 OnItemSelectedListener()。

这样做

private void addListenerOnButton() 
{
    buttn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            String val = sp.getSelectedItem().toString();
            String url = "";
            if(val.equalsIgnoreCase("google")){
                url = "http://www.google.com";
            else if (val.equalsIgnoreCase("yahoo"))
                url = "http://www.yahoo.com"; 

            if(url.length() > 0){
                Intent browse = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                YourActivity.this.startActivity(browse);
            } 
        }
    });
}

编辑

要在您的活动网络视图中打开 url,请执行此操作

Intent intent = new Intent(YourCurrentActivity.this, MyWebViewActivity.class); // Change the activity name as yours
intent.putExtra("url", url);
YourCurrentActivity.this.startActivity(intent); // Change the activity name as yours

然后在下一个 activity 中执行此操作,其中 webview 是

String url = getIntent().getStringExtra("url");
WebView webView = (WebView) findViewById(R.id.web_view); // Change to your id
webView.loadUrl(url);