如何在java中为活动标题定义字符串数组?
我是java新手。我正在创建android应用程序。我有一个基于教程的创建列表菜单。菜单名来自类名(MainActivity),但我想为每个活动添加标题,并在列表中显示文本而不是活动名。请看我的密码。没有布局。谢谢 包com.x.xname如何在java中为活动标题定义字符串数组?,java,android,Java,Android,我是java新手。我正在创建android应用程序。我有一个基于教程的创建列表菜单。菜单名来自类名(MainActivity),但我想为每个活动添加标题,并在列表中显示文本而不是活动名。请看我的密码。没有布局。谢谢 包com.x.xname import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import androi
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();
}
}
}
导入android.app.ListActivity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类菜单扩展了ListActivity{
字符串类[]={“MainActivity”、“example1”、“example2”,
“example3”、“example4”、“example5”、“example6”};//将类名(MainActivity)添加到活动的第二个菜单
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setListAdapter(新的ArrayAdapter(Menu.this,android.R.layout.simple_list_item_1,classes));
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
//TODO自动生成的方法存根
super.onListItemClick(左、右、位置、id);
字符串tikla=类[位置];
试一试{
Class-ourClass=Class.forName(“com.x.xname.”+tikla);
Intent-ourIntent=新的Intent(Menu.this,ourClass);
星触觉(ourIntent);
}catch(classnotfounde异常){
e、 printStackTrace();
}
}
}
我认为您必须在类中输入应用程序类的名称。。intent需要作为第二个参数启动的类的名称
但不清楚你在问什么..道歉。。Java不是我的母语。 通过查看您发布的代码,
onListItemClick
将从数组中获取相应的字符串,并尝试查找一个名为任何字符串的类,然后它假定该字符串为活动
使用名为“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();
}
}
您可能还需要更改布局文件,但您尚未发布相关代码,因此我无法进一步提供帮助。您的问题不清楚,能否提供一个示例,说明正在发生的情况以及希望发生的情况?屏幕截图?这是android应用程序上的列表菜单代码。字符串有java类。我的意思是“MainActivity”是我的java类。当我将“MainActivity”字符串更改为另一个文本时,应用程序不工作,我收到错误消息。我想是找不到该上哪门课了。我现在清楚了吗:(谢谢回复,是的,你说得对。我想显示标题而不是类名。我没有这个类的布局。有没有其他方法可以更改当前代码和活动标题。是的,你有一个布局文件..android.R.layout.simple_list_item_1-很抱歉,除非你重写你的问题,否则我无法进一步帮助你。我解决了我的问题通过使用replace tikla=tikla.replace(“Title Name”,“main activity”);感谢您的帮助:)这将不起作用。如果没有我提到的更改,您将只能在菜单中使用1个活动。很抱歉,我将该代码实现为我的代码,而不是您的代码。