2017-12-23 15 views
1

listViewアイテムが変更されたときに異なるレイアウトでアクティビティを開こうとしています。最初にアイテムをクリックすると、空白のスクリーンしか表示されず、1秒後にelse条件。問題を解決するのに役立ちます。listviewアイテムのアクティビティに異なるレイアウトを割り当てるクリック

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.male); 
    list = (ListView) findViewById(R.id.lv_stars_male); 
    Resources res = getResources(); 
    star_names = res.getStringArray(R.array.starnames); 
    star_dates = res.getStringArray(R.array.stardates); 
    MaleLikeDislikeAdapter adapter = new MaleLikeDislikeAdapter(this,star_names,star_images, star_dates); 
    list.setAdapter(adapter); 
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      if (position==0) { 
       Intent intent = new Intent("com.example.shahid.myapp.List_Activity"); 
       startActivity(intent); 
       la.setContentView(R.layout.listviewlayout); 
       // la is an object of List_Activity to which i want to set different layouts on item click 
      } 
      else { 
       Intent intent = new Intent("com.example.shahid.myapp.List_Activity"); 
       startActivity(intent); 
       la.setContentView(R.layout.list_layout); 
      } 

     } 
    }); 
+0

私は問題は、setContentViewとstartActivity()が同じブロックにあるため、setContentViewを削除してアクティビティの中に入れてみることだと思います。 – Marlon

+0

これはアクティビティに設定されています。アイテムのアクティビティに近づくと、デフォルトのレイアウトをif/else条件で渡すレイアウトに変更します。 – Shahid

答えて

1

これを行う代わりにfragmentを使用してください。フラグメントはアクティビティと同じですが、実際はアクティビティの一部です。 1つのアクティビティ画面で複数のフラグメントを使用できます。フラグメントの詳細および使用方法については、thisドキュメントを参照してください。

+0

あなたの貴重な提案Jaydipに感謝しますが、私はほとんど問題を抱えていませんでした。もしそれが解決するのが複雑なら、おそらく私はcosiderationであなたの提案を取るでしょう。 – Shahid

関連する問題