Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何通过gridview和McClick启动新活动?_Android_Gridview_Start Activity - Fatal编程技术网

Android 如何通过gridview和McClick启动新活动?

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

我想在Item上打开新的activity,单击gridview中的listner。如下所示。 单击位置1(印度)->开放式活动1。单击位置2(巴西)->开放式活动2。单击位置3(加拿大)->开放式活动3。 怎么可能呢? 这是我的密码

   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;
                }
            }
        });