दिलचस्प पोस्ट
यूज़न्सपैस से लिनक्स निकटतम भौतिक मेमोरी कैसे चुनें एक टैग का विकल्प तत्व शैली? डेल्फी में एक ही बार में विभिन्न प्रकार के अभिलेखों को कैसे ठीक से मुक्त करना है? रूबी समय के अंतर (अवधि) आसानी से प्रिंट कर सकते हैं? कोई निर्माता नहीं है जिसमें 0 तर्क आते हैं एसक्यूएल स्विच / प्रकरण जहां खंड में एकाधिक रेखाओं पर जावास्क्रिप्ट रेगेक्स का उपयोग कैसे करें? फ़ाइल या निर्देशिका को पुनरावर्ती पायथन में कॉपी करें लॉन्चर में घातक त्रुटि: "\ Program Files (x86) \ Python33 \ python.exe" "C: \ Program Files (x86) \ Python33 \ pip.exe" "" का उपयोग करके प्रक्रिया बनाने में असमर्थ: TypeError: ObjectId ('') JSON धारावाहिक नहीं है फ्लास्क के अंतर्निहित वेब सर्वर की सीमाएं क्या हैं एप्लिकेशन / एक्स-जावास्क्रिप्ट और टेक्स्ट / जावास्क्रिप्ट सामग्री प्रकारों के बीच का अंतर जावा विधि से 2 मान वापस कैसे करें? PHP का इस्तेमाल करते हुए स्थानीय वैम्प सर्वर से ईमेल कैसे भेज सकते हैं? एक शब्दकोश के लिए पायथन "विस्तार"

एंड्रॉइड: रैखिक लेआउट के लिए एक पाठ दृश्यता प्रोग्राम जोड़ें

मैं कोड में अपने XML-defined लेआउट में TextViews जोड़ने का प्रयास कर रहा हूं। मेरे पास एक XML-sheet है, जहां बहुत सारे Views परिभाषित किए जाते हैं। लेकिन मुझे कुछ दृश्यों को कोड में जोड़ना होगा, ताकि एक्सएमएल-शीट में एक LinearLayout बनाएं:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:id="@+id/info" android:layout_height="wrap_content" android:orientation="vertical"> </LinearLayout> 

और इस लेआउट में, मैं अपना TextView जोड़ना चाहता हूं:

  View linearLayout = findViewById(R.id.info); //LinearLayout layout = (LinearLayout) findViewById(R.id.info); TextView valueTV = new TextView(this); valueTV.setText("hallo hallo"); valueTV.setId(5); valueTV.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); ((LinearLayout) linearLayout).addView(valueTV); 

लेकिन मुझे केवल निम्न त्रुटि संदेश मिलता है:

 : java.lang.ClassCastException: android.widget.TextView 

मैं यह कैसे कर सकता हूं?

मदद के लिये शुक्रिया। मार्टिन

Solutions Collecting From Web of "एंड्रॉइड: रैखिक लेआउट के लिए एक पाठ दृश्यता प्रोग्राम जोड़ें"

उपयोग करने का प्रयास करें

 LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info); ... linearLayout.addView(valueTV); 

यह भी सुनिश्चित करें कि आप जो लेआउट पैरामाइयां बना रहे हैं वह LinearLayout.LayoutParams …

हे मैंने आपके कोड की जांच की है, आपके कोड में कोई गंभीर त्रुटि नहीं है। यह पूर्ण कोड है:

main.xml: –

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:id="@+id/info" android:layout_height="wrap_content" android:orientation="vertical"> </LinearLayout> 

यह स्टैकहोवरफ्लो.जावा है

 import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; import android.widget.TextView; public class Stackoverflow extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); View linearLayout = findViewById(R.id.info); //LinearLayout layout = (LinearLayout) findViewById(R.id.info); TextView valueTV = new TextView(this); valueTV.setText("hallo hallo"); valueTV.setId(5); valueTV.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); ((LinearLayout) linearLayout).addView(valueTV); } } 

इस कोड को कॉपी करें, और इसे चलाएं। यह पूरी तरह त्रुटि मुक्त है ध्यान रखें…

 for(int j=0;j<30;j++) { LinearLayout childLayout = new LinearLayout(MainActivity.this); LinearLayout.LayoutParams linearParams = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); childLayout.setLayoutParams(linearParams); TextView mType = new TextView(MainActivity.this); TextView mValue = new TextView(MainActivity.this); mType.setLayoutParams(new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); mValue.setLayoutParams(new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); mType.setTextSize(17); mType.setPadding(5, 3, 0, 3); mType.setTypeface(Typeface.DEFAULT_BOLD); mType.setGravity(Gravity.LEFT | Gravity.CENTER); mValue.setTextSize(16); mValue.setPadding(5, 3, 0, 3); mValue.setTypeface(null, Typeface.ITALIC); mValue.setGravity(Gravity.LEFT | Gravity.CENTER); mType.setText("111"); mValue.setText("111"); childLayout.addView(mValue, 0); childLayout.addView(mType, 0); linear.addView(childLayout); } 

आप अपने रैखिक लेआउट में एक TextView प्रोग्राम को इस तरह जोड़ सकते हैं:

 LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylayout); TextView txt1 = new TextView(MyClass.this); linearLayout.setBackgroundColor(Color.TRANSPARENT); linearLayout.addView(txt1); 

आपको लेआउट संसाधन के माध्यम से लेआउट तक पहुंचने की आवश्यकता है, एक आईडी संसाधन नहीं है जो अद्वितीय की गारंटी नहीं है। संसाधन का संदर्भ R.layout.my_cool_layout जैसा दिखना चाहिए, जहां आपका उपरोक्त XML लेआउट res / layout / my_cool_layout.xml में संग्रहीत किया गया है।

 LinearLayout.LayoutParams layoutParams ; layoutParams= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 

यहां पर अपवाद तब होता है जहां

 ((LinearLayout) linearLayout).addView(valueTV); 

addView विधि प्रकार के एक पैरामीटर में लेता है, नहीं, addView View । इसलिए, valueTv ऑब्जेक्ट को एक ऑब्जेक्ट में टाइप करें, स्पष्ट रूप से

इसलिए, सही कोड होगा:

 ((LinearLayout) linearLayout).addView((TextView)valueTV);