0

ボタンクリックイベントで setContentView(R.layout.activity_main); を使用しています。それは正しく動作します。

Intent コマンドと startactivity コマンドを使用して新しいアクティビティを開始しようとすると、レイアウトが 2 回読み込まれます。レイアウトが正しく読み込まれているように見えてから、同じレイアウトが 1 秒間読み込まれます。

アクティビティを開始する前に、一度だけロードされます。

show.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {           
        String selected = spinner0.getSelectedItem().toString();
        if(selected.equals("Item 2"))
        {
            Intent intent = new Intent(second_layout.this,MainActivity.class);

            setContentView(R.layout.activity_main);
            startActivity(intent);
        }
    }
});
4

3 に答える 3

1

この行が問題だと思います.-

setContentView(R.layout.activity_main);

setContentView現在のアクティビティのレイアウトを変更するだけなので、現在のレイアウトを に変更してからforクラスactivity_mainを開きます。IntentMainActivity

その行を削除するだけです。

于 2013-10-12T08:32:50.720 に答える
0

2 番目のアクティビティを開始する前に、最初のアクティビティで 2 番目のアクティビティ レイアウトを設定することはできません。onCreate()2 番目のアクティビティのメソッドで自動的に設定されます。setContentView(R.layout.activity_main);したがって、メソッドに記述する必要がありますMainActivity's onCreate()。onClick リスナーから削除するだけです。

onClickしたがって、以下のように記述してください。

show.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {           
        String selected = spinner0.getSelectedItem().toString();
        if(selected.equals("Item 2"))
        {
            Intent intent = new Intent(second_layout.this,MainActivity.class);
            startActivity(intent);
        }
    }
});

そして、あなたMainActivityは以下のようにレイアウトを設定する必要があります:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      }
}
于 2013-10-12T08:38:49.330 に答える
0

新しいアクティビティを開始する場合、インテントの開始中に setContentView は必要ありません。

開始するインテントには、レイアウトをロードするためのコードが含まれます。ですから、この行を削除してください。

MainActivity.class では、すでに setContentView(R.layout.activity_main) を記述しており、必要なレイアウトを表示するにはこれで十分です。したがって、インテントの開始時に含めたこの余分な行を削除してください。

于 2013-10-12T08:37:46.673 に答える