2010-09-15 13 views
11

हाय मैं एंड्रॉइड में नया हूं। किसी को भी मुझे बता सकते हैं pls क्या निम्नलिखित कोड के साथ गलत:प्रोग्राम व्यू बनाएं प्रोग्रामेटिक

public class ListApp extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     TextView lText = new TextView(this); 
     lText.setId(0);  

     ListView lView = new ListView(this); 
     String[] lStr = new String[]{"AA","BB", "CC"}; 
     ArrayAdapter lAdap = new ArrayAdapter(this,lText.getId(),lStr); 
     lView.setAdapter(lAdap); 
     lView.setFocusableInTouchMode(true);   

     setContentView(lView); 
    } 
} 
+0

एक चीज़ के लिए, आप गलत तरीके से ArrayAdapter कन्स्ट्रक्टर का उपयोग कर रहे हैं। आप दो पैरामीटर संस्करण का उपयोग करना चाहते हैं: (संदर्भ संदर्भ, int textViewResourceId) – moonlightcheese

+0

इस तरह: ArrayAdapter lAdap = new ArrayAdapter (यह, lText.getId()); – moonlightcheese

उत्तर

0
public class ListApp extends ListActivity 
+0

क्या मैं ListView फॉर्म गतिविधि जोड़ सकता हूं। मैं ListActiviy से उत्तराधिकारी नहीं बनना चाहता। क्या यह संभव है? – ashraf

+0

मेरे पास एक ही समस्या है, आईफोन और ब्लैकबेरी से एक परियोजना को पोर्ट करना और एंड्रॉइड के एक्सएमएल का उपयोग करना एक नया स्वरूप है ... argh। यदि प्रक्रियात्मक रूप से इन चीजों को बनाना आसान है तो यह जीवन को बहुत आसान बना देगा और ऐसा लगता है कि यह संभव होना चाहिए लेकिन हे, मैं अभी भी एंड्रॉइड के लिए नया हूं :) – sradforth

0

अपने सूचीदृश्य के साथ एक लेआउट एक्सएमएल फ़ाइल करें और यह एडाप्टर है स्थापित करने के लिए पहले अपने लेआउट के लिए सामग्री को देखने के सेट करने के बाद findViewById का उपयोग

3

इसे आज़माएं ..

list_item.xml में निम्न कोड पेस्ट करें।

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:textSize="16sp" android:textColor="#ffffff" android:textStyle="bold" android:background="@drawable/border_cell"> 
</TextView> 

यहाँ गतिविधि वर्ग .... है

public class UsersListActivity extends ListActivity{  
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState);   
      String[] statesList = {"listItem 1", "listItem 2", "listItem 3"}; 
      setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, 
        statesList)); 
      ListView lv = getListView(); 

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


        Toast.makeText(getApplicationContext(), 
        "You selected : "+((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
    } 
      }); 

     } 

} 
1

सर्वश्रेष्ठ अभ्यास (XML लेआउट) और नियंत्रक (गतिविधि) दृश्य अलग करने के लिए है।

आप इस चाहते हैं, तो onCreate

18

की शुरुआत में

setContentView(lView); 

रखने का प्रयास यहाँ एक समाधान है कि आप किसी भी एक्सएमएल लेआउट में लिखने के लिए की आवश्यकता नहीं है है। यह मानक एंड्रॉइड लेआउट का उपयोग करता है जहां संभव हो और कोई मुद्रास्फीति आवश्यक नहीं है:

Dialog dialog = new Dialog(this); 
AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("Select Color Mode"); 

ListView modeList = new ListView(this); 
String[] stringArray = new String[] { "Bright Mode", "Normal Mode" }; 
ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, stringArray); 
modeList.setAdapter(modeAdapter); 

builder.setView(modeList); 
dialog = builder.create(); 
+2

संवाद सामग्री को अनदेखा करें। आप इसे सूचीत्मकता के साथ काम करने के लिए भी अनुकूलित कर सकते हैं। – moonlightcheese

+0

यह सही उत्तर के रूप में चिह्नित होना चाहिए –

संबंधित मुद्दे