2013-07-15 19 views
0

這是我的主要代碼如何使用一類爲多ListView項點擊次數

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.layout_of_button); 
ImageButton btn1 = (ImageButton)findViewById(R.id.imageButton1); 
ImageButton btn2 = (ImageButton)findViewById(R.id.imageButton2); 
ImageButton btn3 = (ImageButton)findViewById(R.id.imageButton3); 
ImageButton btn4 = (ImageButton)findViewById(R.id.imageButton4); 
ImageButton btn5 = (ImageButton)findViewById(R.id.imageButton5); 
ImageButton btn6 = (ImageButton)findViewById(R.id.imageButton6); 
btn1.setOnClickListener(this); 
btn2.setOnClickListener(this); 
btn3.setOnClickListener(this); 
btn4.setOnClickListener(this); 
btn5.setOnClickListener(this); 
btn6.setOnClickListener(this); 
} 


    @Override 
    public void onClick(View v) { 
    switch(v.getId()) { 
    // if one of the image buttons is pressed... 
    case R.id.imageButton1: 
    case R.id.imageButton2: 
    case R.id.imageButton3: 
    case R.id.imageButton4: 
    case R.id.imageButton5: 
    case R.id.imageButton6: 
     Intent intent = new Intent(this, Listviewact.class); 
     // pass ID of pressed button to listview-activity 
     intent.putExtra("buttonId", v.getId()); 
     startActivity(intent); 
     break; 
    // here you could place handling of other clicks if necessary...   
    } 
} 

private void setListAdapter(ArrayAdapter<String> arrayAdapter) { 
// TODO Auto-generated method stub 

} 

private ListView getListView() { 
// TODO Auto-generated method stub 
return null; 
} 
} 

這是我的列表視圖代碼。

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Typeface; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

    public class Listviewact extends Activity { 

public void onCreate(Bundle b) { 
    super.onCreate(b); 
    setContentView(R.layout.listview_layout); 

    Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/AlexBrush-Regular-OTF.otf"); 
    TextView tv = (TextView) findViewById(R.id.textView1); 
    tv.setTypeface(tf); 
} 

public void onResume() { 
    super.onResume(); 
    int buttonId = getIntent().getIntExtra("buttonId", 0); 
    int buttonIdx = getButtonIdx(buttonId); 

    // find and set image according to buttonId 
    int imageId = IMAGE_IDS[buttonIdx];  // image to show for given button 
    ImageView imageView = (ImageView)findViewById(R.id.imageView1); 
    imageView.setImageResource(imageId); 

    // find and set listview imtes according to buttonId 
    String[] items = LISTVIEW_DATA[buttonIdx]; // listview items to show for given button 
    ListView listView = (ListView)findViewById(R.id.listView1); 
    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, items); 
    listView.setAdapter(adapter); 

    listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 

      if(position == 0) 
      { 
      //code specific to first list item  
        Intent myIntent = new Intent(view.getContext(), Information.class); 
         startActivityForResult(myIntent, 0); 
      } 

      if(position == 1) 
      { 
      //code specific to 2nd list item  
        Intent myIntent = new Intent(view.getContext(), Information.class); 
         startActivityForResult(myIntent, 0); 
      } 
       } 
       }); 
      // When clicked, show a toast with the TextView text 
      //Or do whatever you need. 
} 


     public void onItemClick1(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      // TODO Auto-generated method stub 

     } 




private void setListAdapter(ArrayAdapter adapter) { 
    // TODO Auto-generated method stub 

} 

// a little helper to map ids to array indices 
// to be able to fetch the correct image and listview data later 
private final static int[] BUTTON_IDS = new int[] { 
    R.id.imageButton1, 
    R.id.imageButton2, 
    R.id.imageButton3, 
    R.id.imageButton4, 
    R.id.imageButton5, 
    R.id.imageButton6 
}; 

// 6 images 
private final static int[] IMAGE_IDS = new int[] { 
    R.drawable.1, 
    R.drawable.2, 
    R.drawable.3, 
    R.drawable.4, 
    R.drawable.5, 
    R.drawable.6 
}; 

// 6 different sets of strings for the listviews 
private final static String[][] LISTVIEW_DATA = new String[][] { 
    {"First A", "First B", "First C", "First D","First E","First F"}, 
    {"Second A", "Second B", "Second C"}, 
    {"Third A", "Third B", "Third C"}, 
    {"Forth A", "Forth B", "Forth C"}, 
    {"Fifth A", "Fifth B", "Fifth C"}, 
    {"Sixth A", "Sixth B", "Sixth C"}, 
}; 

    // map button id to array index 
    static private int getButtonIdx(int id) { 
    for(int i = 0; i<BUTTON_IDS.length; i++) { 
     if (BUTTON_IDS[i] == id) return i; 
    } 
    return 0; // should not happen 
} 
} 

我想什麼做的,對此我很難發現它是當任何我的列表視圖被點擊的他們都去到相同的佈局,但有不同的數據/ infromation這一形象是展示你的最好方式傢伙。​​。我在想,如果我可以有一個可以重複使用的課程,而不是像50個活動那樣放慢速度會很好。

圖片是我想要做的。如果可能的話,在酒店一側有文字:PETS,VIEWS,PARKING,CHILDREN。然後我想在左側打電話給reslut 的不同信息。沒有寵物停車YES等

+0

我爲我正在進行的一個項目做了一件完全如此的事情。我現在不能寫一個完整的答案,但創建一個Model類,它包含一個帶有getters和setter的'List '。然後創建一個Adapter類,它在ListView中顯示Model類。使用一種佈局,但創建不同的使用模型的單獨活動。 –

回答

0

那麼如果你的layout是相同的,那麼你可以使用相同的Activity,但那麼代碼可能會變得複雜。

ListView項是Google Maps Places的情況下動態生成的,還是由您事先決定的選項?如果情況是前者,那麼你必須從數據庫中獲取數據,因爲你不能爲所有可能性編碼,如果是後者,你也可以明確編碼。

後,如果您使用的數據庫的下一個頁面上,然後從一個SQLite database獲取數據,或者如果它的每個數據後一種情況下使用Intent.getExtra(data)並指定這些值的Textfields

如果我理解你的問題,這應該工作。

+0

這聽起來就是在後面..「是ListView項目動態生成」對不起,我不明白這一點。 –

+0

我的意思是基於查詢生成的listview項目?就像我在紐約查詢餐館的情況一樣,我得到一個動態列表,當我在芝加哥查詢他們時,我會得到另一個列表。這些是動態列表。 –

+0

您也可以使用僅顯示預定義項目的佈局,如「您的手機操作系統」顯示1. iOS 2. Android 3. Windows 8,它們不是動態的。如果它可以幫助請upvote和標記回答:) –