java - 如何从微调器的项目中调用 Activity

标签 java android android-spinner

我有一个页面,其中包含一个微调器和一个提交按钮。我想要实现的是,当用户选择列表中的一个项目并单击提交时,它应该将他带到具有 WebView 的其他布局。微调器中的每个项目应在布局中打开不同的 .html 页面。

我现在所拥有的是从微调器中选择该项目,但我不确定如何对其执行 onclick 监听器...

主activity.java的代码是:

    public class beef extends Activity {

private Spinner spinner1;
private ImageButton btnSubmit;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.beef);


    addListenerOnButton();
    addListenerOnSpinnerItemSelection();

}


public void addListenerOnSpinnerItemSelection(){

    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}

//get the selected dropdown list value
public void addListenerOnButton() {

    spinner1 = (Spinner) findViewById(R.id.spinner1);

    btnSubmit = (ImageButton) findViewById(R.id.imageButton1);

    btnSubmit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if(v.getId() == btnSubmit.getId())
            {
                Intent intent = new Intent(beef.this,display.class);
                intent.putExtra("urlpath", "animalbites.html");
                startActivity(intent);
            }
        }

    });

}

}

CustomOnItemSelectedListener.java的代码是:

@Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        // TODO Auto-generated method stub
         if (arg2 == 0) // First item selected
    {
    //Here I need to give an id for the .html file  

    }
    else if (arg2 == 1) // Second
    {
            //Here I need to give an id for the .html file  
    }



    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

    }

display.java 是:

public class display extends Activity implements OnClickListener {
    private WebView webView;

     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.webview);

            Intent intent=getIntent();
            String mUrl=intent.getStringExtra("urlpath");
            webView = (WebView) findViewById(R.id.webview);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.loadUrl("file:///android_asset/www/"+mUrl);


     }


    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }

}

最佳答案

我不完全明白你的问题,但我会根据我得到的回答:

为什么您担心向微调器添加 onClickListener?

只需将 onClickListener 添加到按钮,然后单击该按钮即可:

    String selecteditemName=(String)spinner1.getSelectedItem();
    //spinner1 having items : "file1" , "file2"

    Intent i=new Intent(this, yournewActivity.class);
    i.putExtra("selected_item", selecteditemName);
    startActivity(i);

现在,在包含 webview 的 Activity (yournewActivity) 中,在 onCreate() 方法中使用以下代码:

    String item;
    Intent i=getIntent();
    item = i.getStringExtra("selected_item");

现在您可以在字符串“item”中进行微调选择,您现在可以做任何您想做的事情:

我的观点是:您应该使用微调器选择作为填充 Web View 的 ID。

如果您仍想使用除微调器中存在的 ID 之外的任何 ID,则 制作一个额外的 java 类 Idgetter,

    class idgetter
{
    public static String getID(String name)
    {
        if(name.equals("file1"))
            return "requiredfile1.html";

        else if(name.equals("file2"))
            return "requiredfile2.html";
    }
}

现在,完全按照上面的代码所述进行操作,在变量 item 中进行微调选择后,使用:

    String id=idgetter.getID(item);   //in younewActivity

你终于完成了。

关于java - 如何从微调器的项目中调用 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14794583/

相关文章:

java - 如何获取 JavaFX 菜单的父菜单栏

android - 尝试将 OneSignal 集成到 Xamarin.Forms Android 应用程序时出错

java - 在 Android 上是否有等效于 SimpleXML 的解析 JSON?

Android Spinner——如何调整当前所选项目的大小?

android - imageview 中的进度对话框,直到我从服务器加载图像

java - 如何在 dynamoDB 中连接表?

java - 如何创建到 tempdir tomcat 的虚拟路径?

java - 使用AspectJ的异步执行切面

android - Firebase 云消息传递如何在 Android 上运行

android - 如何获得 fragment 中微调器变化的值(value)?