2011-05-30 43 views
1

好的,我對Android開發和編程一般都很陌生。我有一個列表視圖,其中有兩個項目,當用戶點擊它時,我希望每個項目都有不同的活動。這是我迄今爲止的代碼。ListView轉到不同的活動

package com.pais.convert; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class list extends ListActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     String[] choose = getResources().getStringArray(R.array.list_chooser); 
     setListAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, choose)); 

     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 
    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     Intent intent = new Intent(this, tempConvert.class); 
     intent.putExtra("KEY_SELECTED_INDEX", position); 
     startActivity(intent); 
    } 
    } 

所以在這裏點擊的時候都會去tempConvert.class。我想要一個說「Temp」的人轉到tempConvert,當「Dist」被點擊時它會轉到distConvert.class。我怎麼做到這一點?

在此先感謝您的幫助

回答

2

裏面onListItemClick,請與INT位置參數的switch語句。那麼,如果它是0,你去一個班級,如果它是1,你去另一個班級。

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    switch(position) { 
     case '0' :    
      Intent intent = new Intent(this, tempConvert.class); 
      intent.putExtra("KEY_SELECTED_INDEX", position); 
      startActivity(intent); 
      break; 
     case '1' :    
      Intent intent = new Intent(this, distConvert.class); 
      intent.putExtra("KEY_SELECTED_INDEX", position); 
      startActivity(intent); 
      break; 
    } 
} 
1
@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    Intent intent = null; 
    switch (position) { 
    case 0: 
     intent = new Intent(this, tempConvert.class); 
     break; 
    case 1: 
     intent = new Intent(this, distConvert.class); 
     break; 
    } 
    if (intent != null) { 
     startActivity(intent); 
    } else { 
     // report unknown item selection 
    } 
} 
+0

所以,如果我想添加要打開所有我必須做的就是添加更多的情況下是多活動?謝謝 – sipjca 2011-05-30 18:54:32

+0

我就是這麼做的。您可以通過依靠id而不是位置來改變界面,從而使其更強大,但這是一個判斷呼叫。 – 2011-05-30 18:58:54

0
@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
Intent intent = null; 
switch (position) { 
case 0: 
    startActivity(new Intent(this, tempConvert.class)); 
    break; 
case 1: 
    startActivity(new Intent(this, distConvert.class)); 
    break; 
} 

}