Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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
Java 从imagebutton启动另一个活动_Java_Android_Android Intent - Fatal编程技术网

Java 从imagebutton启动另一个活动

Java 从imagebutton启动另一个活动,java,android,android-intent,Java,Android,Android Intent,因此,我想根据用户单击的imagebutton启动一个活动。 目前我有这样的想法: private void LoadDrawer() { // TODO Auto-generated method stub ImageButton Home, Icon, Ranking, History; Home = (ImageButton) findViewById(R.id.ibHome); Icon = (ImageButton) findViewById(R.id.

因此,我想根据用户单击的imagebutton启动一个活动。
目前我有这样的想法:

private void LoadDrawer() {
    // TODO Auto-generated method stub
    ImageButton Home, Icon, Ranking, History;
    Home = (ImageButton) findViewById(R.id.ibHome);
    Icon = (ImageButton) findViewById(R.id.ibIcon);
    Ranking = (ImageButton) findViewById(R.id.ibRanking);
    History = (ImageButton) findViewById(R.id.ibHistory);
    Home.setOnClickListener(this);
    Icon.setOnClickListener(this);
    Ranking.setOnClickListener(this);
    History.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId())
    {
        case R.id.ibHome:
            ClassLoader App2;
            Intent intent2 = new Intent(this, App2.class);
            break;
        case R.id.ibIcon:
            Intent intent1 = new Intent(this, App1.class);
            break;
        case R.id.ibRanking:
            Intent intent4 = new Intent(this, App4.class);
            break;
        case R.id.ibHistory:
            Intent intent5 = new Intent(this, App5.class);
            break;
    }
}
现在,您看到意图的原因是,我尝试使用意图启动其他活动,但没有效果

现在,我通过以下方式检索意图:

Intent intent[number] = getIntent();
String message = intent[number].getAction();

它实际上并没有停留在那个里,它只是我所拥有的,例如,我这里有2,因为这是来自app2的,我不太明白你们的问题是什么。它应该像这样简单

@Override
public void onClick(View v) {
    Intent i = null;

    switch (v.getId()) {
    case R.id.ibHome:
        i = new Intent(this, App2.class);
        break;
    case R.id.ibIcon:
        i = new Intent(this, App1.class);
        break;
    case R.id.ibRanking:
        i = new Intent(this, App4.class);
        break;
    case R.id.ibHistory:
        i = new Intent(this, App5.class);
        break;
    }
    if (i != null)
        startActivity(i);
}

您也可以使用类似的方法:

Home= (ImageButton) findViewById(R.id.ibHome);
Home.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i = new Intent(MainActivity.this, App2.class);
                startActivity(i);
            }
        });
Icon= (ImageButton) findViewById(R.id.ibIcon);
Icon.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i = new Intent(MainActivity.this, App1.class);
                    startActivity(i);
                }
            });

首先,保持编码风格。为什么不为每个图像按钮使用一个单独的“onClick”方法呢?难道你没有忘记调用
startActivity(MyActivity.this,intent)实际开始您的活动?是的,您可以。但你不应该。