类型活动中的方法 startactivity(intent,bundle) 不适用于参数 (int,intent)
Posted
技术标签:
【中文标题】类型活动中的方法 startactivity(intent,bundle) 不适用于参数 (int,intent)【英文标题】:the method startactivity(intent,bundle) in the type activity is not applicable for the argument (int,intent) 【发布时间】:2015-09-12 21:44:05 【问题描述】:我想使用意图将列表视图中主要活动的活动链接到其他活动。
当我使用意图链接它并将结果定向到 mainactivity 中具有 id (R.id.main
) 的框架布局时,它会发生问题。
谁能帮帮我?
问题StartActivity(intent, R.id.main
)
String [] menus=getResources().getStringArray(R.array.menus);
//currently selected river
data=menus[pos];
if (data.equals("One"))
Intent intent = new Intent(MainActivity.this, Home.class);
startActivity(intent,R.id.main);
else if (data.equals("Two"))
Intent in = new Intent(MainActivity.this, Page1.class);
startActivity(in,R.id.main);
else if(data.equals("Three"))
Intent inte = new Intent(MainActivity.this, Page2.class);
startActivity(inte,R.id.main);
【问题讨论】:
请用代码澄清您的问题 【参考方案1】: ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.menus));
final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout);
final ListView navList = (ListView) findViewById(R.id.drawer);
navList.setAdapter(adapter);
ImageView burger=(ImageView) findViewById(R.id.btnback) ;
burger.setOnClickListener(new View.OnClickListener ()
@Override
public void onClick (View v)
drawer.openDrawer(navList);
);
navList.setOnItemClickListener(new OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> parent, View view, final int pos,long id)
String [] menus=getResources().getStringArray(R.array.menus);
//currently selected river
data=menus[pos];
if (data.equals("One"))
Intent intent = new Intent(MainActivity.this, Home.class);
startActivity(intent,R.id.main);
else if (data.equals("Two"))
Intent in = new Intent(MainActivity.this, Page1.class);
startActivity(in);
else if(data.equals("Three"))
Intent inte = new Intent(MainActivity.this, Page2.class);
startActivity(inte);
【讨论】:
【参考方案2】:startActivity()
方法将第二个参数作为Bundle
。但是您正在传递一个 int 值。
从此更改您的代码
Intent intent = new Intent(MainActivity.this, Home.class);
startActivity(intent,R.id.main);
进入这个
Intent in = new Intent(MainActivity.this, Page1.class);
startActivity(in);
【讨论】:
无论如何,感谢您的解决方案。但是,我想将意图的结果定向到具有 id (R.id.main) 的框架布局。你能解决吗? 你应该在 Page1 Activity 中处理它。【参考方案3】:尝试如下,
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
Bundle mBundle = new Bundle();
mBundle.putInt("key", R.id.main);
intent.putExtras(mBundle);
startActivity(intent);
所以您的程序在更改
之后将看起来像String[] menus = getResources().getStringArray(R.array.menus);
// currently selected river
data = menus[pos];
if (data.equals("One"))
Intent intent = new Intent(MainActivity.this, Home.class);
Bundle mBundle = new Bundle();
mBundle.putInt("key", R.id.main);
intent.putExtras(mBundle);
startActivity(intent);
else if (data.equals("Two"))
Intent intent = new Intent(MainActivity.this, Page1.class);
Bundle mBundle = new Bundle();
mBundle.putInt("key", R.id.main);
intent.putExtras(mBundle);
startActivity(intent);
else if (data.equals("Three"))
Intent intent = new Intent(MainActivity.this, Page2.class);
Bundle mBundle = new Bundle();
mBundle.putInt("key", R.id.main);
intent.putExtras(mBundle);
startActivity(intent);
获取目标Activity上的值
myVariable = getIntent().getExtras().getInt("key");
希望这会有所帮助...谢谢
【讨论】:
以上是关于类型活动中的方法 startactivity(intent,bundle) 不适用于参数 (int,intent)的主要内容,如果未能解决你的问题,请参考以下文章
Android - 从 startActivity 获取活动对象
startActivity(Intent) 每次都在破坏活动,为啥?