2013-05-15 56 views
0

也許你會發現我要問的是太主流/基本的問題,但我需要幫助,也許我是一個新手 基本上我做了一個簡單的應用程序,顯示關於一些旅遊地圖在離線manner.It地方有三個活動 A - 。擴展列表 乙 - 的活動,使用的WebView C上顯示的地圖 - TabHost託管活動B.意圖未成功通過! :(

每當一個孩子從擴展列表中點擊在活動A中它發送兩個意圖 1)給活動B給出所需地圖的位置。 2)到活動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不顯示任何內容。爲什麼?請幫忙。

回答

0

你已經在意圖中正確傳遞了這個值,但我認爲你已經開始了第二個intent的活動,在這個活動中你沒有傳遞任何東西,並且你試圖從活動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); 

} 

根據我做也改變了,如果條件。 我希望它能幫助你。

+0

嗨,高興您的回覆!不幸的是,它部分解決了問題。現在它將分開開展兩項活動。地圖圖像成功顯示在Map.class中。但是TabHost仍然顯示一個空白的WebView。含義Intents正在成功傳輸,但僅在TabHost存在一些問題。 –

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中的==進行比較。你必須使用相等於或equalsIgnoreCase

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

裏面的,如果身體您創建兩個不同Intent。在一個你放了一個字符串,並使用另一個開始一個Actvity。第一個是沒用的

+0

我很高興您的回覆!但是您指出的代碼片段正常工作。在Java中使用'=='運算符比較字符串是完全正確的。謝謝。 –

+0

當然是。如果你想比較它的地址 – Blackbelt