2010-10-18 3 views
0

Je suis maintenant bloqué dans le chargement html de mon dossier assets. J'ai plusieurs pages html sous le dossier des assets et je dois les charger sur l'item listview onclick. Chaque élément listview possède ses pages html. Est-ce que quelqu'un sait comment je peux obtenir un événement onclick et comment afficher des pages html spécifiques?load html at listview item onclick

Merci

Répondre

1
public class WebViewWithListActivity extends Activity {              
    private String lv_arr[] = { "Android", "iPhone", "BlackBerry"};           
    ListView lv1;                       
    /** Called when the activity is first created. */              
    @Override                        
    public void onCreate(Bundle savedInstanceState) {              
     super.onCreate(savedInstanceState);                 
     setContentView(R.layout.main);                  
     lv1 = (ListView) findViewById(R.id.listView1);              
     lv1.setAdapter(new ArrayAdapter<String>(this,              
       android.R.layout.simple_list_item_1, lv_arr));            
     lv1.setTextFilterEnabled(true);                  
     lv1.setOnItemClickListener(new OnItemClickListener() {            

      @Override                      
      public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id)     
      {                        
        AlertDialog.Builder adb = new AlertDialog.Builder(WebViewWithListActivity.this);  
        adb.setTitle("Selected item");               
        adb.setMessage("Selected Item is = "             
          + lv1.getItemAtPosition(position));            
        adb.setPositiveButton("Ok", null);              
        Log.i("Selected item is ",(String) lv1.getItemAtPosition(position)+"");    
        adb.show();                   

        //TextView tvUrl = (TextView) view.findViewById(R.id.item2);       
        TextView tvUrl=(TextView) findViewById(R.id.item2);          
        if(lv1.getItemAtPosition(position).equals("Android"))         
        {                      
           GlobalVariable.SetURL("http://www.google.co.in/");       
           Log.i("Global vari : ",GlobalVariable.GetURL());       
           Intent i = new Intent(WebViewWithListActivity.this,WebViewDemo.class);  
           //i.putExtra("http://www.google.co.in/", tvUrl.getText());     

           startActivity(i);               

        }                      

      }                        
     });                         


    }                          
}                         

C'est WebViewDemo. I Activité simplement étendu:

public class WebViewDemo extends Activity{ 
    private WebView webView; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.layout_webview); 
     //String url =getIntent().getStringExtra("url");//get url that pass from the other screen 
     //Log.i("url ", url+""); 
     Log.i("Global vari : ",GlobalVariable.GetURL()); 

     webView = (WebView)findViewById(R.id.wvDisplay); 
     WebSettings webSetting= webView.getSettings(); //create new settings for webView 
     webSetting.setJavaScriptEnabled(true); // enabled javascript 
     webView.setWebViewClient(new WebViewClient()); //set up webviewclient, this set not to open the default browser when link click 
     //Log.i("url ", url+""); 
     webView.loadUrl(GlobalVariable.GetURL());//load the web page 



    } 

} 


public class GlobalVariable extends Application{ 
    private static String url; 
    public static String GetURL() 
    { 
     return url; 
    } 
    public static void SetURL(String URL) { 
      url = URL; 
     } 

} 
1
  1. Vous pouvez utiliser la méthode setOnItemClickListener de ListView pour obtenir cliquez événement sur les éléments de liste.
  2. Vous pouvez utiliser la méthode loadUrl de WebView pour afficher vos pages html. Voir WebView tutorial.
+0

oui je sais à ce sujet mais j'ai beaucoup de pages html à afficher dans webview. ce que je veux dire, c'est que chaque élément de la liste a ses propres pages html. Comment puis-je recevoir l'identifiant de l'article onclick? de toute façon, merci pour votre réponse. – geekmyo

+0

Je ne sais pas si je comprends bien. Lorsque l'élément de liste est cliqué, votre écouteur sera déclenché, et vous pouvez obtenir l'identifiant de l'élément cliqué dans votre implémentation de AdapterView.OnItemClickListener, n'est-ce pas? – Tony

1

... Mec renoncer ... ça ne marchera pas - pas moyen d'obtenir cet écouteur de travail lorsque vous avez un WebView dans un listview

+0

Eh bien quelque chose qui a finalement fonctionné pour moi ... supprimer tout android: focusable ... ou android: cliquable ... = "false" trucs dans la définition de votre vue d'article ... et pour chaque webview vous instancier faire ce qui suit: webView .setFocusable (false); WebView.setClickable (false) –

0

Vous pouvez utiliser un webViewClient personnalisé et des liens de capture dans le code HTML, vous pouvez faire ce que vous voulez vous les clics.