如何从列表视图中打开具有不同项目的同一活动的不同网页?

时间:2013-10-24 21:26:49

标签: java android listview android-listview

你可以看到我在MainActivty.java上有三个案例指向同一个活动Ekantipur.java 但在Ekantipur.java我只有一个链接。因此,当您单击三个列表视图中的任何一个时,它将打开相同的链接。因此,当您单击列表视图中的不同位置时,单击不同的列表视图项时,我想打开不同的链接。

我不想为此做出不同的活动。这只是三个案例,但我有大约20个链接,我不想用相同的源代码和只有不同的网络链接进行20次活动。

MainActivityParent.java

package com.example.listviewselfmade;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivityParent extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // storing string resources into Array
        String[] adobe_products = getResources().getStringArray(R.array.newsparent);

        // Binding Array to ListAdapter
        this.setListAdapter(new ArrayAdapter<String>(this, R.layout.main,
                R.id.label, adobe_products));

        ListView lv = getListView();

        // listening to single list item on click
        lv.setOnItemClickListener(new OnItemClickListener() {

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

                switch (position) {
                case 0:
                    startActivity(new Intent("com.example.listviewselfmade.MAINCHILD"));

                    break;
                case 1:
                    startActivity(new Intent("com.example.listviewselfmade.MAINCHILD"));

                    break;
                case 2:
                    startActivity(new Intent("com.example.listviewselfmade.MAINCHILD"));

                    break;


                }

            }
        });
    }
}

MainActivity.java

package com.example.listviewselfmade;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // storing string resources into Array
        String[] adobe_products = getResources().getStringArray(R.array.news);

        // Binding Array to ListAdapter
        this.setListAdapter(new ArrayAdapter<String>(this, R.layout.main,
                R.id.label, adobe_products));

        ListView lv = getListView();

        // listening to single list item on click
        lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                switch (position) {
                case 0:
                    startActivity(new Intent("com.example.listviewselfmade.EKANTIPUR"));
                    break;
                case 1:
                    startActivity(new Intent("com.example.listviewselfmade.EKANTIPUR"));
                    break;
                case 2:
                    startActivity(new Intent("com.example.listviewselfmade.EKANTIPUR"));
                    break;

                }

            }
        });
    }
}

Ekantipur.java

package com.example.listviewselfmade;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class Ekantipurbreaking extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub

        // Adds Progress bar Support
        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        super.onCreate(savedInstanceState);

        setContentView(R.layout.webviewxml);

        // Makes Progress bar Visible
        getWindow().setFeatureInt(Window.FEATURE_PROGRESS,
                Window.PROGRESS_VISIBILITY_ON);

        WebView mainWebView = (WebView) findViewById(R.id.webview);

        final Activity MyActivity = this;
        mainWebView.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                // Make the bar disappear after URL is loaded, and changes
                // string to Loading...
                MyActivity.setTitle("Loading...");
                MyActivity.setProgress(progress * 100); // Make the bar
                                                        // disappear after URL
                                                        // is loaded

                // Return the app name after finish loading
                if (progress == 100)
                    MyActivity.setTitle(R.string.app_name);
            }
        });

        // enable javascript
        WebSettings webSettings = mainWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        // setting up the client so that the link opened will open in the same
        // activity
        mainWebView.setWebViewClient(new MyCustomWebViewClient());
        // loads the url

        try {
            mainWebView.loadUrl("http://tipfortechs.com");
        } catch (Exception e) {
            e.printStackTrace();

        }
        mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

    }
}

1 个答案:

答案 0 :(得分:1)

public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
    Intent intent = new Intent(MainActivityParent.this, MainActivity.class);
    intent.putExtra("product", adobe_products[position]);
    startActivity(intent);
}

然后在MainActivity的onCreate

String product = getIntent().getStringExtra("product");

无论你需要做什么。将数据从第二个活动传递到第三个活动几乎一样,只需使用相应的类和数据。

public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
    Intent intent = new Intent(MainActivity.this, Ekantipur.class);
    intent.putExtra("url", adobe_products[position]);
    startActivity(intent);
}

在Ekantipur

mainWebView.loadUrl(getIntent().getStringExtra("url"));