1

これは些細なことのように思えるかもしれませんが、どのようにすればよいのかわかりません。また、グーグル検索での用語の欠如は何もわかりません。私はすでに次のような単一のメインアクティビティを持っています:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class DroidPlayerActivity extends Activity {

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.all_songs:
                Toast.makeText(DroidPlayerActivity.this, "Pressed All Songs TextView", Toast.LENGTH_SHORT).show();
                new AllSongsActivity();//nothing shows up
                break;
            case R.id.recently_added:
                Toast.makeText(DroidPlayerActivity.this, "Pressed Recently Added TextView", Toast.LENGTH_SHORT).show();
                break;
            ...
        }

    }
}

私のonClick(View v)方法では、どちらTextViewが押されたかを確認し、の新しいインスタンスを開始しますがAllSongsActivity、何も表示されません(アクティビティが表示されない場合でもメインアクティビティが表示されます)。今のAllSongsActivityところ、クラスは単純な空白 Activityです。

import android.app.Activity;
import android.os.Bundle;

/**
 *
 * @author David
 */
public class AllSongsActivity extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.all_songs);
    }

}

それで、私がすでに実行している(それがメインである)ことをどのようにAllSongsActivity可視化するかを明確にするために。DroidPlayerActivity

前もって感謝します

4

5 に答える 5

2

アクティビティのインスタンスを自分で作成することはありません。代わりにstartActivity()、アクティビティを開始するために呼び出します。

startActivity(new Intent(this, AllSongsActivity.class));
于 2012-08-26T20:18:52.080 に答える
1

現在のアクティビティから新しいアクティビティを呼び出すために、そのアクティビティのクラスをインスタンス化することはできません。インテントを使用する必要があります

このようなもの:

http://www.vogella.com/articles/AndroidIntent/article.html

また、Androidの公式ドキュメント、特にAPIガイドを確認する必要があります。これにより、次のような一般的な問題に多くの光が当てられます。

http://developer.android.com/guide/components/index.html

于 2012-08-26T20:18:51.407 に答える
1

インテントに関するドキュメントを確認してください。インテントは、Androidで別のアクティビティを開始するために使用されます。

たとえば、

Intent intent = new Intent(this, AllSongsActivity.class);
startActivity(intent); // This will start AllSongsActivity activity
于 2012-08-26T20:19:25.480 に答える
1

次のように、開始するアクティビティにインテントを送信する必要があります。

    Intent intent = new Intent(this, AllSongsActivity.class);
    startActivity(intent);

編集:すでに答えました!

于 2012-08-26T20:19:57.230 に答える
0

これはあなたがすべきことです:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class DroidPlayerActivity extends Activity {

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.all_songs:
                Toast.makeText(DroidPlayerActivity.this, "Pressed All Songs TextView", Toast.LENGTH_SHORT).show();
                // ---- show next activity ----
                Intent intent = new Intent(DroidPlayerActivity.this, AllSongsActivity.class);
                startActivity(intent);
                break;
            case R.id.recently_added:
                Toast.makeText(DroidPlayerActivity.this, "Pressed Recently Added TextView", Toast.LENGTH_SHORT).show();
                break;
            ...
        }

    }
}
于 2012-08-26T20:23:55.150 に答える