2010-04-22 7 views
22

अपने आवेदन में करने के लिए डेटा देते हैं मैं बहुत इस ट्यूटोरियल में के रूप में तालिका में गतिशील पंक्तियों बनाने के लिए: http://en.androidwiki.com/wiki/Dynamically_adding_rows_to_TableLayoutएंड्रॉयड - विचारों

for(int i = startDay; i < startDay + 7; i++){ 

     /* Create a TextView to be the row-content. */ 
     TextView day = new TextView(this); 
     day.setText(Integer.toString(i)); 
     day.setLayoutParams(new LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 

     day.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Log.i("Listener: ", "Click"); 
      } 

तो अब जब मैं एक TextView पर क्लिक करें मैं घटना क्लिक करें रजिस्टर कर सकते हैं, लेकिन कैसे करना है मैं निर्धारित करता हूं कि कौन सा टेक्स्ट व्यू क्लिक किया गया था?

न केवल एक वस्तु जो मुझे किसी ईवेंट के साथ मिलती है लेकिन डेटा किस दिन नंबर पर क्लिक किया गया था?

आदर्श रूप से मैं गतिशील रूप से बनाए गए प्रत्येक दृश्य से डेटा संलग्न करना चाहता हूं। जावास्क्रिप्ट jQuery में डेटा() विधि की तरह कुछ।

अभी मैं इसे हल करने के लिए केवल 1 तरीका देख सकता हूं - टेक्स्ट व्यू को डेटा के साथ आईडी जोड़ते समय और क्लिक करते समय - आईडी वापस प्राप्त करें और मेरा डेटा प्राप्त करने के लिए इसे पार्स करें। लेकिन यह मुझे बदसूरत दृष्टिकोण के रूप में हमला करता है।

एंड्रॉइड विचारों के मनमाने ढंग से डेटा संलग्न करने का कोई तरीका है?

उत्तर

47

उत्तर देने के तरीकों के माध्यम से उत्तर मिला। शायद यह किसी के लिए उपयोगी होगा।

तरीके मैं जरूरत थे:

setTag() और getTag()

http://developer.android.com/reference/android/view/View.html#setTag%28java.lang.Object%29

+0

क्या मैं कई डेटा की जरूरत है क्या होता है तो क्या होगा? सिर्फ एक टैग नहीं? –

+2

@ फ्रांसिस्को कोरलसमोरालेस आप कई टैग जोड़ सकते हैं, प्रत्येक एक int कुंजी द्वारा पहचाना जाता है। –

+0

@ फ्रांसिस्को कोरलसमोराल्स आप टैग में अद्वितीय ऑब्जेक्ट आइडेंटिफायर की एक सूची जोड़ सकते हैं। – CodeShadow