القضية في التخطيط في وقت لاحق:يتم عرض أي إخراج ، وتعطل التطبيق

StackOverflow https://stackoverflow.com//questions/20035271

سؤال

في طلبي ، لقد خلق مجلد وكتب ملفات نصية في ذلك.الآن ، أنا بحاجة لعرضها.فيما يلي رمز جافا ، حيث تبدأ العملية الرئيسية.

private class OpenFileEvent implements OnClickListener
    {

        @Override
        public void onClick(View arg0) {

            LinearLayout openFileDialogView = (LinearLayout)findViewById(R.id.open_file_dialog);

            // TODO Auto-generated method stub
            final Dialog openFileDialog = new Dialog(Notes.this);
            openFileDialog.setTitle("Open File");
            openFileDialog.setContentView(R.layout.open_dialog);


            //First, list all the available Files
            File folder = new File(Environment.getExternalStorageDirectory()+"/Main Notes/Notes/");
            File file = new File(folder.getAbsolutePath());

            File[] fileNameList = file.listFiles();

            try
            {
            if(fileNameList != null && fileNameList.length>0)
            {
                for(int i=0;i<fileNameList.length;i++)
                {
                    //Get the sub views first
                    LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                    View openThisFileView = inflater.inflate(R.layout.open_dialog_file, null);      
                    Button openThisFileButton = (Button)openThisFileView.findViewById(R.id.open_this_file_button);
                    Button appendThisFileButton = (Button)openThisFileView.findViewById(R.id.append_note_this_file);
                    TextView openThisFileNameTxt = (TextView)openThisFileView.findViewById(R.id.open_this_file_name);

                    //Set the Text
                    openThisFileNameTxt.setText(fileNameList[i].getName());

                    //Set the Listeners


                    //Add the View
                    openFileDialogView.addView(openThisFileView);

                }
            }
            }
            catch(Exception e)
            {
                Toast.makeText(VoiceNotes.this, "The Error is: "+e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
            }

            //Show the Dialog
            openFileDialog.show();




        }

    }

هنا, ال try..catch مطلوب لتشغيل في الجهاز.بدونها ، يتعطل التطبيق ببساطة.المحاكي لا تحتاج إليها.في الجهاز الحقيقي ، رسالة الخطأ هي The Error is: null.لا توجد مشاكل في المحاكي.

يتم إنشاء الحوار أعلاه مع مساعدة من تخطيط آخر.ها هو.

فتح الحوار.شمل

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


</LinearLayout>

كما ترون في رمز جافا ، والفضاء في open_dialog.xml شغل من قبل وجهة نظر أخرى ، والتي تمثل اسم الملف و 2 أزرار.هو واحد التي تحصل على تفعيلها من هنا هو عليه.

فتح ملف الحوار.شمل

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/open_dialog_file_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/open_this_file_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:padding="5dp"
        android:text="TextView" />

    <Button
        android:id="@+id/append_note_this_file"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/open_this_file_button"
        android:text="@string/append_note" />

    <Button
        android:id="@+id/open_this_file_button"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="@string/open" />


    </RelativeLayout>

لذا سؤالي هو, لماذا هذا لا يعمل في جهاز حقيقي?قبل أن أنشر هذا الرمز ، اختبرت ما إذا كان المجلد الذي يبحث عنه هذا الرمز موجودا أم لا ، وكما خمنت ، فهو موجود.

في الجهاز الحقيقي ، عندما أستخدم try catch, ، يتم عرض مربع الحوار الذي يحتوي على العنوان فقط.لكن الحوار فارغ.بصرف النظر عن ذلك ، فإن الناتج الآخر الوحيد هو Toast رسالة.

فما هي القضية هنا?

هل كانت مفيدة؟

المحلول

القضية ليست مع إو.هذا هو الحال مع تخطيط تضخيم.في المحاكي لم يأت لأنه لا توجد بيانات ليتم عرضها ، لذلك لا تضخيم.لقد وجدت المشكلة مع LayoutInflater أو شيء متعلق بذلك ، لأنني تمكنت من الحصول على قائمة المجلدات وعرضها في نخب دون عرض في أي عرض خارجي.

نصائح أخرى

هل وضعت إذن الكتابة الخارجية في أندرويدمانيفست.شمل:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top