[英]How to open different webpage from same activity from the listview which has different items?
You can see I have three cases on the MainActivty.java which is pointing on the same activity Ekantipur.java but in Ekantipur.java I have only one link. 您可以在MainActivty.java上看到三种情况,它们指向同一活动Ekantipur.java,但是在Ekantipur.java中我只有一个链接。 So when you click any of the three listview it will open the same links.
因此,当您单击三个列表视图中的任何一个时,它将打开相同的链接。 So I want to open different links when you click on different listview items when different position in listview is clicked.
因此,当单击列表视图中的不同位置时,当您单击不同的列表视图项时,我想打开不同的链接。
I donot want to make different activity for that. 我不想为此进行其他活动。 This is just with three cases but I have around 20 links and I donot want to make 20 acitvity with same source code and only different weblinks.
这只是三种情况,但是我有大约20个链接,我不想使用相同的源代码和仅不同的Web链接来获得20个提示。
MainActivityParent.java 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 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 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);
}
}
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);
}
Then in the onCreate of the MainActivity 然后在MainActivity的onCreate中
String product = getIntent().getStringExtra("product");
And whatever you need to do with that. 以及您需要做什么。 Pretty much the same with passing data from the second to the third activity, just use the corresponding classes and data.
从第二个活动向第三个活动传递数据几乎相同,只是使用相应的类和数据。
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);
}
And in Ekantipur 而在Ekantipur
mainWebView.loadUrl(getIntent().getStringExtra("url"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.