Android 如何通过gridview和McClick启动新活动?
我想在Item上打开新的activity,单击gridview中的listner。如下所示。 单击位置1(印度)->开放式活动1。单击位置2(巴西)->开放式活动2。单击位置3(加拿大)->开放式活动3。 怎么可能呢? 这是我的密码Android 如何通过gridview和McClick启动新活动?,android,gridview,start-activity,Android,Gridview,Start Activity,我想在Item上打开新的activity,单击gridview中的listner。如下所示。 单击位置1(印度)->开放式活动1。单击位置2(巴西)->开放式活动2。单击位置3(加拿大)->开放式活动3。 怎么可能呢? 这是我的密码 android.widget.AdapterView.OnItemClickListener; public class GridViewExampleActivity extends Activity { /** Called when the acti
android.widget.AdapterView.OnItemClickListener;
public class GridViewExampleActivity extends Activity {
/** Called when the activity is first created. */
private GridviewAdapter mAdapter;
private ArrayList<String> listCountry;
private ArrayList<Integer> listFlag;
private GridView gridView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
prepareList();
// prepared arraylist and passed it to the Adapter class
mAdapter = new GridviewAdapter(this,listCountry, listFlag);
// Set custom adapter to gridview
gridView = (GridView) findViewById(R.id.gridView1);
gridView.setAdapter(mAdapter);
// Implement On Item click listener
gridView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
Toast.makeText(GridViewExampleActivity.this, mAdapter.getItem(position), Toast.LENGTH_SHORT).show();
}
});
}
public void prepareList()
{
listCountry = new ArrayList<String>();
listCountry.add("india");
listCountry.add("Brazil");
listCountry.add("Canada");
listCountry.add("China");
listFlag = new ArrayList<Integer>();
listFlag.add(R.drawable.india);
listFlag.add(R.drawable.brazil);
listFlag.add(R.drawable.canada);
listFlag.add(R.drawable.china);
}
}
android.widget.AdapterView.OnItemClickListener;
公共类GridViewExampleActivity扩展活动{
/**在首次创建活动时调用*/
专用GridviewAdapter mAdapter;
私有ArrayList列表国家;
私有ArrayList listFlag;
私有GridView GridView;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
准备主义者();
//准备arraylist并将其传递给适配器类
mAdapter=新的GridviewAdapter(this、listCountry、listFlag);
//将自定义适配器设置为gridview
gridView=(gridView)findViewById(R.id.gridView1);
setAdapter(mAdapter);
//在项目上实现单击侦听器
setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
公共单击(适配器视图arg0,视图arg1,内部位置,
长arg3){
Toast.makeText(GridViewExampleActivity.this、mAdapter.getItem(position)、Toast.LENGTH\u SHORT.show();
}
});
}
公共无效准备列表()
{
listCountry=新的ArrayList();
添加(“印度”);
添加(“巴西”);
添加(“加拿大”);
添加(“中国”);
listFlag=新的ArrayList();
listFlag.add(R.drawable.india);
添加(R.drawable.巴西);
listFlag.add(R.drawable.canada);
添加(R.drawable.china);
}
}
谢谢 您可以使用基于位置的意图打开活动
gridView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
if(position==1) {
Intent intent = new Intent(GridViewExampleActivity.this, IndiaActivity.class);
startActivity(intent);
}
else if(position==2)
{
Intent intent = new Intent(GridViewExampleActivity.this, BrazilActivity.class);
startActivity(intent);
}
Toast.makeText(GridViewExampleActivity.this, mAdapter.getItem(position), Toast.LENGTH_SHORT).show();
}
});
gridView.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
公共单击(适配器视图arg0,视图arg1,内部位置,
长arg3){
如果(位置==1){
意向意向=新意向(GridViewExampleActivity.this,IndiaActivity.class);
星触觉(意向);
}
否则如果(位置==2)
{
意向意向=新意向(GridViewExampleActivity.this、BrazilActivity.class);
星触觉(意向);
}
Toast.makeText(GridViewExampleActivity.this、mAdapter.getItem(position)、Toast.LENGTH\u SHORT.show();
}
});
您需要在侦听器中添加此代码
有两种方法可以做到这一点。如果布局相同但内容不同,则只能创建一个活动,并放置额外内容和更改内容。如果您有不同的布局设计,则使用此
switch (position) {
case 0:
Intent intent = new Intent(GridViewExampleActivity.this,ActivityOne.class);
break;
case 1:
Intent intent = new Intent(GridViewExampleActivity.this,ActivityTwo.class);
break;
}
startActivity(intent);
你可以和我的位置相比
switch (listCountry.get(position)) {
case 0:
Intent intent = new Intent(GridViewExampleActivity.this,IndiaActivity.class);
break;
case 1:
intent = new Intent(GridViewExampleActivity.this,BrazilActivity.class);
break;
}
startActivity(intent);
在任何情况下,开始任何活动都是完全相同的。您只需创建一个intent并将其提供给startActivity()方法
@覆盖
公共单击(适配器视图arg0,视图arg1,内部位置,
长arg3){
如果(位置==1){
//为印度启动活动
startActivity(新意图(GridViewExampleActivity.this,InidaActivity.class));
}否则如果(位置==2){
//为巴西启动活动
}
}
在网格项中单击侦听器启动活动
gridView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
Toast.makeText(GridViewExampleActivity.this, mAdapter.getItem(position), Toast.LENGTH_SHORT).show();
Intent intent = new Intent(GridViewExampleActivity.this , YourDetailsActivity.class)
intent.putExtra("country", listCountry.get(position);
intent.putExtra("flag", listFlag.get(position);
startActivity(intent);
}
});
在“详细信息”活动中,您可以检查所选国家/地区并相应地设置数据
if(country.equals("india")){
// Show data related to india
}
您也可以尝试使用国家名称
switch (listCountry.get(position)) {
case "India":
Intent intent = new Intent(GridViewExampleActivity.this,IndiaActivity.class);
break;
case "Brazil":
Intent intent = new Intent(GridViewExampleActivity.this,BrazilActivity.class);
break;
}
startActivity(intent);
使用此代码-
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,int position, long id) {
switch (position) {
case 0:
//Use some different intent here
Intent i = new Intent(getApplicationContext(), MyActivity.class);
i.putExtra("id", position);
startActivity(i);
break;
case 1:
//Use some different intent here
Intent j = new Intent(getApplicationContext(), MyActivity.class);
j.putExtra("id", position);
startActivity(j);
break;
case 2:
//Use some different intent here
Intent k = new Intent(getApplicationContext(), MyActivity.class);
k.putExtra("id", position);
startActivity(k);
break;
case 3:
//Use some different intent here
Intent l = new Intent(getApplicationContext(), MyActivity.class);
l.putExtra("id", position);
startActivity(l);
break;
default:
break;
}
}
});
gridview.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
开关(位置){
案例0:
//在这里使用一些不同的意图
Intent i=新的Intent(getApplicationContext(),MyActivity.class);
i、 putExtra(“id”,位置);
星触觉(i);
打破
案例1:
//在这里使用一些不同的意图
Intent j=新的Intent(getApplicationContext(),MyActivity.class);
j、 putExtra(“id”,位置);
星触觉(j);
打破
案例2:
//在这里使用一些不同的意图
Intent k=新的Intent(getApplicationContext(),MyActivity.class);
k、 putExtra(“id”,位置);
星触觉(k);
打破
案例3:
//在这里使用一些不同的意图
Intent l=新的Intent(getApplicationContext(),MyActivity.class);
l、 putExtra(“id”,位置);
星触觉(l);
打破
违约:
打破
}
}
});
在这里,您可以看到更多解释代码
您可以与onItemClick中的位置进行比较。您想在每个项目单击时打开相同的活动还是不同的活动?@Newbie Android,我想在单击不同时打开不同的活动item@Dhirajkumar帕蒂尔编辑了我的答案,请检查一下。谢谢大家。现在我尝试所有答案;)我只是编辑if(position==0){Intent Intent=new Intent(GridViewExampleActivity.this,IndiaActivity.class);startActivity(Intent);}else if(position==1){Intent Intent=new Intent(GridViewExampleActivity.this,BraziActivity.class);startActivity(intent);}谢谢;)
switch (listCountry.get(position)) {
case "India":
Intent intent = new Intent(GridViewExampleActivity.this,IndiaActivity.class);
break;
case "Brazil":
Intent intent = new Intent(GridViewExampleActivity.this,BrazilActivity.class);
break;
}
startActivity(intent);
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,int position, long id) {
switch (position) {
case 0:
//Use some different intent here
Intent i = new Intent(getApplicationContext(), MyActivity.class);
i.putExtra("id", position);
startActivity(i);
break;
case 1:
//Use some different intent here
Intent j = new Intent(getApplicationContext(), MyActivity.class);
j.putExtra("id", position);
startActivity(j);
break;
case 2:
//Use some different intent here
Intent k = new Intent(getApplicationContext(), MyActivity.class);
k.putExtra("id", position);
startActivity(k);
break;
case 3:
//Use some different intent here
Intent l = new Intent(getApplicationContext(), MyActivity.class);
l.putExtra("id", position);
startActivity(l);
break;
default:
break;
}
}
});