2015-09-28 15 views
-3

我有一個對話框片段listView,在這個列表中是一個圖片和一個textview。
我想單擊列表中的每個項目來開始新的活動!嘗試了一個onItemClickListener,但似乎不能開始一個新的活動,當前onItemClickListener顯示單擊時烤麪包文本。從每個列表中選擇一個新的活動查看選項

我嘗試刪除吐司並添加意圖無濟於事。

public class MainActivity extends FragmentActivity { 

    Button showBtn; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final android.support.v4.app.FragmentManager fm = getSupportFragmentManager(); 
     final PlayersFragment p = new PlayersFragment(); 
     showBtn = (Button) findViewById(R.id.button1); 
     showBtn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
       showBtn.setVisibility(View.GONE); 

       transaction.replace(R.id.fragment_container, p); 
       transaction.addToBackStack(null); 
       transaction.commit(); 
      } 
     }); 
    } 

    @Override 
    public void onBackPressed() { 
     if (showBtn != null) { 
      showBtn.setVisibility(View.VISIBLE); 
     } 
     super.onBackPressed(); 
    } 
} 

public class PlayersFragment extends android.support.v4.app.DialogFragment { 

    ListView lv; 
    String[] players = {"image1", "image2", "image3", "image4", "image5", "image6", "image7", 
      "image8", "image9", "image10", "image11", "image12", "image13", "image14"}; 

    int[] images = {R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4, 
      R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8, R.drawable.image9, R.drawable.image10, 
      R.drawable.image11, R.drawable.image12, R.drawable.image13, R.drawable.image14,}; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.dialog, container, false); 

     //initialize listview 
     lv = (ListView) rootView.findViewById(R.id.listView1); 

     //create adapter obj and set list view to it 
     Adapter adapter = new Adapter(getActivity(), players, images); 
     lv.setAdapter(adapter); 

     lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> a, View v, int pos, long id) { 
       Toast.makeText(getActivity(), players[pos], Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     return rootView; 
    } 
} 
+2

你寫了什麼代碼來啓動'Activity'?你可以在我使用的onItemclickListener中添加 –

+0

Intent intent = new Intent(this,PlayerFragment) start.image1.activity; start.image2.activity; – james

+0

你應該這樣做startActivity - >'getActivity()。startActivity(intent)' –

回答

1

你可以使用onItemClicklistener進行你的listview:

list.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int pos, 
       long arg3) { 
       if(pos == 0) 
       { 
        Intent intent = new Intent(getActivity() , Activity2.class); 
        startActivity(intent); 
       } 
       else if(pos == 1) 
       { 
        Intent intent = new Intent(getActivity() , Activity3.class); 
        startActivity(intent); 
       } and so on ....... 
     } 
    }); 
+0

嗨Pirisok,這將工作在當前onItemClickListener通過刪除吐司? – james

+0

你必須爲你的listview設置onOnItemClickListener而不是一個按鈕,如果你這樣做,pos的值表示你的listview的行號,這個方法,你可以通過點擊listview的每一行開始活動。 – Pirisok

+0

@james,如果你替換你的代碼的lv.setonitemclick監聽器,我建議你的代碼,它會爲你工作。 – Pirisok

相關問題