2013-02-10 63 views
0

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

    } 

} 

回答

0

解决了它,它很简单。下面是我做的:

public void addListenerOnSpinnerItemSelection(){ 

     spinner1 = (Spinner) findViewById(R.id.spinner1); 
     spinner1.setOnItemSelectedListener(this); 
    } 
    - - - 


@Override 
      public void onClick(View v) { 

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

       } 
      } 

     }); 

    } 


    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     // TODO Auto-generated method stub 
     if(arg2==0){ 
      mLink="Beef html/BBQ_Meatballs_Recipes.html"; 
     } 
} 

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

    } 
0

通过使用Intent的putExtra方法。

Intent mIntent = new Intent(this, display.class); 
mIntent.putExtra("urlpath", "put value in here"); 
startActivity(mIntent); 
+0

IvanFel嗨,我 已经使用它,你可以请电话我还有什么地方可以使用它? – 2013-02-10 04:33:34

0

填充与HTML页面和使用spinner.getSelectedItem()的数量的微调。在addListenerOnButton()方法中的toString()。通过这样做,您将获得选定的html页面,并将其通过意向传递给下一个布局。

CODE:

'公共类牛肉延伸活动{

私人微调spinner1; 私人ImageButton btnSubmit;

int final websiteA = 1; int final websiteB = 2; int final websiteC = 3;

字符串selectedHtmlPage = “”;

......... 
......... 
......... 


@Override 
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
     long arg3) 
{ 
    switch(arg2) 
    { 
     case websiteA : 
      selectedHtmlPage = "websiteA.html"; 
      break; 
     case websiteB : 
      selectedHtmlPage = "websiteB.html"; 
      break; 
     case websiteC : 
      selectedHtmlPage = "websiteC.html"; 
      break; 
    } 
} 

public void addListenerOnButton() 
{ 
    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", selectedHtmlPage); 
       startActivity(intent); 
      } 
     } 

    }); 

} 

}`

+0

嘿Dilip DK, 你可以请用代码显示吗? – 2013-02-10 04:45:59

+0

微调参数从零开始。所以从0初始化最终的int值 – 2013-02-15 13:39:19

1

我并不很让你的问题,但我会根据我得到的回答:

你为什么关心添加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); 

现在该活动(yournewActivity)包含web视图中的onCreate使用此代码()方法:

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

现在你有了你的微调选择在字符串'项目'中,你现在可以做任何你想要的:

我的观点是:你应该使用你的微调选择作为用于填充web视图的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"; 
    } 
} 

现在,究竟将上述代码中说,以后你有微调选择在变量项,请使用:

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

你终于完成。

相关问题