gpt4 book ai didi

java - 如何从具有不同项目的 ListView 中打开来自同一 Activity 的不同网页?

转载 作者:行者123 更新时间:2023-11-30 03:18:39 24 4
gpt4 key购买 nike

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

我不想为此做不同的 Activity 。这只是三个案例,但我有大约 20 个链接,我不想用相同的源代码和不同的 Web 链接创建 20 个 Activity 。

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;


}

}
});
}
}

主 Activity .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);

}
}

最佳答案

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");

无论您需要做什么。与将数据从第二个 Activity 传递到第三个 Activity 几乎相同,只需使用相应的类和数据即可。

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);
}

在埃坎蒂普尔

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

关于java - 如何从具有不同项目的 ListView 中打开来自同一 Activity 的不同网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19577002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com