我有一个页面,其中包含一个微调器和一个提交按钮。我想要实现的是,当用户选择列表中的一个项目并单击提交时,它应该将他带到具有 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/