意图没有成功通过! :(

时间:2013-05-15 15:56:10

标签: android android-intent webview

也许你会发现我要求过于主流/基本的问题。但我需要帮助,也许我是新手。   基本上我正在制作一个简单的应用程序,以离线方式显示一些旅游景点的地图。它有三个活动。 A - 可扩展列表 B - 使用webview显示地图的活动 C - 承载活动B的TabHost。

每当从活动A中的可扩展列表中单击子项时,它就会发送两个意图。 1)到活动B给出所需地图的位置。 2)到Activity C启动TabHost。 代码如下:

 if (childclicked=="Red Fort")
            {
                Intent toMap =  new Intent(TourList.this,Map.class);
                toMap.putExtra(ID , "file:///android_asset/redfort.jpg");

                Intent i = new Intent(TourList.this,TourTabs.class);
                startActivity(i);


            }

,活动B中的代码如下:

public class Map extends Activity {
String imageUrl;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map);


    //Using a webview for pinch zooming
    WebView vw=(WebView)findViewById(R.id.webView1);
    vw.getSettings().setBuiltInZoomControls(true);      

    //Fetching intents
    Intent fromList = getIntent();



  imageUrl = fromList.getStringExtra(TourList.ID);
   vw.loadUrl(imageUrl);
}

但是错误是运行时。 TabHost中没有显示任何内容。 WebView不显示任何内容。为什么?请帮忙。

2 个答案:

答案 0 :(得分:4)

 if (childclicked=="Red Fort")
 {
    Intent toMap =  new Intent(TourList.this,Map.class);
    toMap.putExtra(ID , "file:///android_asset/redfort.jpg");

    Intent i = new Intent(TourList.this,TourTabs.class);
    startActivity(i);

 }

无法将字符串与java中的==进行比较。你必须使用equals或equalsIgnoreCase

 if (childclicked.equals("Red Fort"))

在if体内创建两个不同的Intent。在一个你放一个字符串,并使用另一个开始一个Actvity。第一个是没用的

答案 1 :(得分:0)

您已在意图中正确传递了值,但我认为您已经启动了第二个意图的活动,在该活动中您没有传递任何内容,并且您正尝试从尚未通过的活动TourList.ID访问该值。

尝试如下并尝试运行Map.java的活动,然后访问该值。

 if (childclicked.equals("Red Fort"))
  {
     Intent toMap =  new Intent(TourList.this,Map.class);
     toMap.putExtra(ID , "file:///android_asset/redfort.jpg");
   startActivity(toMap);

   Intent i = new Intent(TourList.this,TourTabs.class);
    startActivity(i);

 }

也根据我的做法改变if条件。 我希望它会对你有所帮助。