मैं हार मानता हूं ... यहां तक कि मेरे प्रोफेसर भी नहीं जानते कि यह क्यों हो रहा है।findViewById() शून्य लौटाता है -
समस्या यह है: कोई फर्क नहीं पड़ता कि मैं इस लेआउट के घटकों के लिए कहां या कैसे कॉल करता हूं, वे हमेशा शून्य लौटते हैं।
लेआउट: search_layout। 2 EdiText और 2 TextView बच्चे।
RUNTIME: setView(inflater.inflate(R.layout.search_layout, null)) // works fine, it displays the layout inside the dialog, yet, children are always returned as null by findViewById(R.id.some_search_layout_children)
अपवाद:, एक्सएमएल के अपवाद के पार्स के रूप में संसाधन, नहीं मिला इसलिए अशक्त।
कोशिश की थी: चारों ओर 1024 बार अपने प्रोजेक्ट साफ़ किया, मेरे संवाद बॉक्स में, एक ही परिणाम,, विधि initSearch (अंदर findViewById मेरी मुख्य गतिविधि के एक सदस्य के रूप में बुलाया के लिए एक और वर्ग) को लागू करने और के लिए OnClickListener की एक अनाम कार्यान्वयन के अंदर करने की कोशिश की मेरा संवाद, एक ही परिणाम। स्वतंत्र विचारों में बच्चों को तोड़ दिया और प्रोग्राम के रूप में उन्हें बुलाया:
TextView text = (TextView) findResourceById(R.id.new_independant_textview); // same result
मुझे लगता है कि मैं सब कुछ करने की कोशिश की।
यह मेरा कोड है:
public class Xyz extends Activity {
public void onCreate(...) { // some listener will trigger initSearch() }
private void initSearch() {
AlertDialog.Builder searchDialog = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
searchDialog.setTitle("Search Photos");
searchDialog.setMessage("Specify tag and value...");
// R.layout.search_dialog is my custom layour, it displays fine, it works.
searchDialog.setView(inflater.inflate(R.layout.search_dialog, null));
EditText tagText = (EdiText) findViewById(R.id.tagField); // WILL RETURN NULL
searchDialog.setPositiveButton(...) ...
searchDialog.show();
}
अब, जब मैं करता हूँ:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/search_dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/tagText"
android:padding="7dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="@string/tag" />
<EditText
android:id="@+id/tagField"
android:padding="7dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"/>
<TextView
android:id="@+id/valueText"
android:padding="7dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="@string/value" />
<EditText
android:id="@+id/valueField"
android:padding="7dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"/>
</LinearLayout>
यह मेरा आर है:
EditText text = (EditText) findViewById(R.id.tagField); // returns null, ALWAYS
// no matter HOW, WHERE, global, local final, etc, it just returns null.
यहाँ मेरी कस्टम लेआउट की एक्सएमएल है जावा फ़ाइल:
public static final class id {
public static final int action_settings=0x7f0a0011;
public static final int add_album=0x7f0a0001;
public static final int add_photo=0x7f0a000d;
public static final int albums_list=0x7f0a0003;
public static final int delete_album=0x7f0a000b;
public static final int exit_finder=0x7f0a000f;
public static final int new_directory=0x7f0a000e;
public static final int open_album=0x7f0a000a;
public static final int photos_grid=0x7f0a0000;
public static final int rename_album=0x7f0a000c;
public static final int search_dialog=0x7f0a0004;
public static final int search_icon=0x7f0a0002;
public static final int splash_rutgers=0x7f0a0009;
public static final int tagField=0x7f0a0006; // problematic
public static final int tagText=0x7f0a0005;/problematic
public static final int terminate_app=0x7f0a0010;
public static final int valueField=0x7f0a0008; // problematic
public static final int valueText=0x7f0a0007; // problematic
}
आपकी मदद के लिए धन्यवाद, खुश शिकार।
आप संवाद किसी अन्य गतिविधि से findViewById बुला ... अच्छी किस्मत में देखने लगता है wana ... – Selvin
दिलचस्प लगता है, लेकिन मैं fuly समझ नहीं कर रहा हूँ क्यों मैं एक नई गतिविधि की जरूरत है। फिर क्यों R.layot.search_dialog सही परत लौटाता है फिर भी यह बच्चे शून्य हैं? वहां कोई स्थिरता नहीं है। – Fer