我制作了包含播放,设置,退出的菜单列表。但是点击按钮并没有把我带到所需的活动,列表工作者没有工作......任何人都可以帮我解决问题..将会感谢... 是的,它是一个列表视图控件..
我的代码中有两个错误 @@新的AdapterView.OnItemClickListener(){}类型必须实现继承的抽象方法AdapterView.OnItemClickListener.onItemClick(AdapterView,View,int,long)@@ in LINE1
另一个是@@ View无法解析为第2行中的@@类型 “实际上,当我点击主菜单屏幕中的项目时,我想从一个屏幕切换到另一个屏幕”
以下是主菜单的代码
public class MenuActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
ListView menuList = (ListView) findViewById(R.id.list);
String[] items = {
getResources().getString(R.string.pla),
getResources().getString(R.string.sco),
getResources().getString(R.string.set),
getResources().getString(R.string.hel),
getResources().getString(R.string.qui)
};
ArrayAdapter < String > adapt = new ArrayAdapter < String > (this, R.layout.menu_items, items);
menuList.setAdapter(adapt);
menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() { //LINE 1 error
public void onItemClick(AdapterView <? > parent, View itemClicked, //LINE 2 error
int position, long id) {
TextView textView = (TextView) itemClicked;
String strText = textView.getText().toString();
if (strText.equalsIgnoreCase(getResources().getString(
R.string.pla))) {
// Game
startActivity(new Intent(MenuActivity.this,
GameActivity.class));
} else if (strText.equalsIgnoreCase(getResources().getString(
R.string.hel))) {
// Help
startActivity(new Intent(MenuActivity.this,
HelpActivity.class));
} else if (strText.equalsIgnoreCase(getResources().getString(
R.string.set))) {
//Settings
startActivity(new Intent(MenuActivity.this,
SettingsActivity.class));
} else if (strText.equalsIgnoreCase(getResources().getString(
R.string.sco))) {
// Scores
startActivity(new Intent(MenuActivity.this,
ScoresActivity.class));
}
}
});
}
}
答案 0 :(得分:0)
使用意图
Intent play= new Intent(getApplicationContext(),Play.class);
startActivity(play);
有很多关于菜单的教程
答案 1 :(得分:0)
ListView lv = ...;
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0,View arg1, int arg2, long arg3)
{
//Do Your Stuff
}
});
或者您可以制作自定义适配器并编写按钮的单击事件
答案 2 :(得分:0)
可以使用名为Intents的android主要构建块之一和属于您的Activity类的方法之一public void startActivity (Intent intent)
来完成此任务。
intent是要执行的操作的抽象描述。它可以与startActivity一起用于启动Activity,broadcastIntent用于将其发送到任何感兴趣的BroadcastReceiver组件,startService(Intent)或bindService(Intent,ServiceConnection,int)用于与后台服务进行通信。
Intent提供了一种工具,用于在不同应用程序中的代码之间执行延迟运行时绑定。它最重要的用途是发起活动,它可以被认为是活动之间的粘合剂。它基本上是一个被动数据结构,包含要执行的动作的抽象描述。
参阅官方文档 - http://developer.android.com/reference/android/content/Intent.html
public void startActivity (Intent intent)
- 用于启动新活动。
假设你有两个Activity类,按一下按钮OnClickListener()
你想从一个Activity移动到另一个Activity然后 -
PresentActivity - 这是您想要进行第二项活动的当前活动。
NextActivity - 这是您要移动的下一个活动。
所以Intent就像这样
Intent(PresentActivity.this, NextActivity.class)
最后这将是完整的代码
public class PresentActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.content_layout_id);
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class);
// currentContext.startActivity(activityChangeIntent);
PresentActivity.this.startActivity(activityChangeIntent);
}
});
}
}
此示例与按钮点击有关,您可以在任意位置使用代码编写任何内容,只需在您OnClickListener()
的活动之间切换按钮点击setOnItemClickListener
。