2014-01-16 33 views
-5

我是java新手。我正在創建android應用程序。我已經創建了基於教程的列表菜單。菜單名稱來自類名(MainActivity),但是我想爲每個活動添加標題並在列表中顯示文本不是活動名稱。請看我的代碼。沒有佈局。謝謝我怎樣才能定義字符串數組在Java的活動標題?

package com.x.xname;

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

public class Menu extends ListActivity { 

    String classes [] = {"MainActivity", "example1", "example2", 
      "example3", "example4", "example5", "example6"}; // add class name(MainActivity) to active second menu 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setListAdapter(new ArrayAdapter<String>(Menu.this, android.R.layout.simple_list_item_1, classes)); 

    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 
     super.onListItemClick(l, v, position, id); 
     String tikla = classes [position]; 
     try{ 
     Class ourClass = Class.forName("com.x.xname." + tikla); 
     Intent ourIntent = new Intent(Menu.this, ourClass); 
     startActivity(ourIntent); 
     } catch (ClassNotFoundException e){ 
      e.printStackTrace(); 
     } 
    } 

} 
+2

你不清楚你在問什麼,你能提供一個正在發生的事情和你想要發生的事情的例子嗎?也許屏幕截圖? – turbo

+0

這是Android應用程序上的列表菜單代碼。和字符串有java類。我的意思是「MainActivity」是我的Java類。當我將「MainActivity」字符串更改爲另一個文本時,應用程序無法正常工作,並且收到錯誤消息。我認爲是無法找到哪些課程需要去。我現在清楚:( – user3203367

回答

0

道歉.. Java不是我的母語。

從看你已經發布的代碼,該onListItemClick會從陣列對應的字符串,並試圖找到一個名爲無論這個字符串是它然後假定是Activity類。

而不是一個字符串數組,有一個名爲「MenuOption」的新類的數組,其中包含title的屬性和另一個用於classname的屬性。

class MenuOption { 
    public String title; 
    public String className; 

    public MenuOption(String title, String className) 
    { 
     this.title = title; 
     this.className = className; 
    } 
} 

您的代碼應該是這樣..

MenuOption classes [] = { new MenuOption("My Main Activity Title", "MainActivity"), new MenuOption("Another Activity Title", "AnotherActivity") 

然後單擊處理程序更改爲這樣的事情...

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 
    MenuItem tikla = classes [position]; 
    try{ 
    Class ourClass = Class.forName("com.x.xname." + tikla.className); 
    Intent ourIntent = new Intent(Menu.this, ourClass); 
    startActivity(ourIntent); 
    } catch (ClassNotFoundException e){ 
     e.printStackTrace(); 
    } 
} 

您可能還需要改變佈局文件而且你還沒有發佈代碼,所以我不能進一步幫助。

+0

感謝您的回覆,是的你是正確的我想顯示標題不是類名稱我沒有這個類的佈局是否有另一種方式來點改變當前代碼和活動標題 – user3203367

+0

是的你有一個佈局文件.. android.r.layout.simple_list_item_1 - 很抱歉,但我不能幫助你,除非你改寫你的問題。 – BenjaminPaul

+0

我解決我的問題,通過使用替換 tikla = tikla.replace(「標題名稱「,」MainActivity「); 感謝您的幫助:) – user3203367

0

我認爲你必須把你的類應用程序的類的名稱。該意圖需要要啓動的第二個參數類的名稱..

但目前還不清楚是什麼你在問..

相關問題