2014-01-09 83 views
0

此处出现奇怪的错误。我是android开发新手。我有一个在平板电脑上工作正常的网格视图活动。但是当我在智能手机上启动相同的活动时,它会崩溃。 我不知道为什么,但我对日志没有信心。我需要帮助。Android GridView仅在不在平板电脑上的智能手机上崩溃

我的活动类:

public class BookletsGridActivity extends Activity { 

    GridView gv; 




     String[] images = new String[] { 
       "url", "url" 
     }; 

     String[] names = new String[] { 
       "name", "name" 
     }; 


     String thepdfurl; 


     private ImageButton button1; 
     private ImageButton button2; 
     private ImageButton button3; 
     private ImageButton button4;  
     private ImageButton button5; 


    @Override 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

    // Portrait only 
      this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

      //Remove title bar 
        this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

      //Remove notification bar 
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 



         setContentView(R.layout.activity_booklets); 
         // View's main buttons 

         button1 = (ImageButton)findViewById(R.id.imageButton1); 
         button1.setOnClickListener(new OnClickListener() 
         { 
          @Override   
          public void onClick(View Button1) { 
           finish();//go back to the previous Activity 
          overridePendingTransition(R.anim.backin, R.anim.backout); 
          } 
          }); 

         button2 = (ImageButton)findViewById(R.id.imageButton2); 
         button2.setOnClickListener(new OnClickListener() 
         { 
          @Override   
          public void onClick(View Button1) { 
           Intent i = new Intent(Intent.ACTION_SEND); 
           i.setType("message/rfc822"); 
           i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
           i.putExtra(Intent.EXTRA_SUBJECT, ""); 
           i.putExtra(Intent.EXTRA_TEXT , ""); 
           try { 
            startActivity(Intent.createChooser(i, "Send mail...")); 
           } catch (android.content.ActivityNotFoundException ex) { 
            Toast.makeText(BookletsGridActivity.this, "Pas de client de messagerie installé sur cet appareil.", Toast.LENGTH_SHORT).show(); 
           } 
          } 
          }); 

         button3 = (ImageButton)findViewById(R.id.imageButton3); 
         button3.setOnClickListener(new OnClickListener() 
         { 
          @Override   
          public void onClick(View Button1) { 
           Intent intent = new Intent(BookletsGridActivity.this, PhilosophyActivity.class); 
           startActivity(intent); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
          } 
          }); 


         button4 = (ImageButton)findViewById(R.id.imageButton6); 
         button4.setOnClickListener(new OnClickListener() 
         { 
          @Override   
          public void onClick(View Button1) { 
           Intent intent = new Intent(BookletsGridActivity.this, MapActivity.class); 
           startActivity(intent); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
          } 
          });   

         button5 = (ImageButton)findViewById(R.id.imageButton4); 
         button5.setOnClickListener(new OnClickListener() 
         { 
          @Override   
          public void onClick(View Button1) { 
           Intent intent = new Intent(BookletsGridActivity.this, ShopsActivity.class); 
           startActivity(intent); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
          } 
          }); 


         gv = (GridView) findViewById(R.id.gridView); 
         gv.setAdapter(new Custom_view(this)); 
         gv.setOnItemClickListener(new OnItemClickListener() { 
          public void onItemClick(AdapterView<?> parent, View v, 
                int position, long id) { 
          Intent intent = new Intent(BookletsGridActivity.this, PdfReader.class); 
           if (position == 0){ 
           String pdfName = (names[0]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
           else if (position == 1){ 
           String pdfName = (names[1]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 2){ 
           String pdfName = (names[2]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 3){ 
           String pdfName = (names[3]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 4){ 
           String pdfName = (names[4]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 5){ 
           String pdfName = (names[5]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 6){ 
           String pdfName = (names[6]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 7){ 
           String pdfName = (names[7]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 8){ 
           String pdfName = (names[8]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 9){ 
           String pdfName = (names[9]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 10){ 
           String pdfName = (names[10]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 11){ 
           String pdfName = (names[11]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 12){ 
           String pdfName = (names[12]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 13){ 
           String pdfName = (names[13]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 
          else if (position == 14){ 
           String pdfName = (names[14]); 
           System.out.println("names --->" + names); 
           intent.putExtra("pdfname", pdfName); 
           String prompt = (String)parent.getItemAtPosition(position); 
           intent.putExtra("pdfurl", prompt); 
           System.out.println("prompt --->" + prompt); 
           overridePendingTransition(R.anim.animationin, R.anim.animationout); 
           startActivity(intent); 
           } 


          } 
         }); 

    } 



        public class Custom_view extends BaseAdapter { 
         Context ctx; 
         Custom_view(Context ctx) { 
          this.ctx = ctx; 
         } 
         public int getCount() { 
         return images.length; 
         } 
        public Object getItem(int position) { 
         return images[position]; 
         } 
         public long getItemId(int position) { 
          return 0; 
         } 
         public View getView(int position, View convertView, ViewGroup parent) { 

         View myview = convertView; 

           LayoutInflater li = getLayoutInflater(); 
           myview = li.inflate(R.layout.gridview_item_cell, null); 
           // TextView tv = (TextView) myview.findViewById(R.id.textView1); 
           ImageView iv = (ImageView) myview.findViewById(R.id.imageView1); 
           if (images[position].equals(images[0])) { 
           // tv.setText(data[position]); 
            iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/ca9e/3131/6100/1124/0000/thumb/OK_BRIAL_2013_CATALOGUE_50Pages-HD.png?1386672850", R.drawable.placeholder); 
           } else if (images[position].equals(images[1])) { 
           // tv.setText(data[position]); 
            iv.setImageResource(R.drawable.bookletplaceholder); 
             UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/cb5b/3131/6100/0e36/0000/thumb/OK_HERBERT-SURGERES_2013_CATALOGUE_50Pages-HD.png?1386672859", R.drawable.placeholder); 
           } else if (images[position].equals(images[2])) { 
            // tv.setText(data[position]); 
            iv.setImageResource(R.drawable.bookletplaceholder); 
             UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/c155/3131/6100/0e17/0000/thumb/OK_HEBERT-SAINTES_2013_CATALOGUE_50Pages-HD.png?1386672865", R.drawable.placeholder); 
           } else if (images[position].equals(images[3])) { 
            // tv.setText(data[position]); 
            iv.setImageResource(R.drawable.bookletplaceholder); 
             UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/d192/3131/6100/0e40/0000/thumb/OK_DOLET_2013_CATALOGUE_50Pages-HD.png?1386672870", R.drawable.placeholder); 

         } else if (images[position].equals(images[4])) { 
           // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/be14/3131/6100/1103/0000/thumb/OK_LASSORT_2013_CATALOGUE_50Pages-HD.png?1386672875", R.drawable.placeholder); 

          } else if (images[position].equals(images[5])) { 
            // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/d133/3131/6100/112c/0000/thumb/OK_TURCAUD_2013_CATALOGUE_50Pages-HD.png?1386672885", R.drawable.placeholder); 

          } else if (images[position].equals(images[6])) { 
            // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/d1e6/3131/6100/0e44/0000/thumb/OK_GODET_2013_CATALOGUE_50Pages-HD.png?1386672879", R.drawable.placeholder); 

          } else if (images[position].equals(images[7])) { 
            // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/cf96/3131/6100/1128/0000/thumb/OK_VOIX2013_CATALOGUE_50-PagesHD.png?1386672890", R.drawable.placeholder); 

          } else if (images[position].equals(images[8])) { 
            // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/c753/3131/6100/141a/0000/thumb/OK_ANNEAU-D-OR_2013_CATALOGUE_50Pages-HD.png?1386672902", R.drawable.placeholder); 

          } else if (images[position].equals(images[9])) { 
            // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/c854/3131/6100/1421/0000/thumb/OK_PHILIPPARIE_2013_CATALOGUE_50Pages-HD.png?1386672911", R.drawable.placeholder); 

          } else if (images[position].equals(images[10])) { 
            // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/c024/3131/6100/0e09/0000/thumb/OK_LANDREAU-BIJOUTIER_2013_CATALOGUE_50-Pages-HD.png?1386672915", R.drawable.placeholder); 

          } else if (images[position].equals(images[11])) { 
            // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/52a5/a9d4/3863/3700/020a/0000/thumb/OK_ANNE-OR-2013_CATALOGUE_50Pages-HD.png?1386672928", R.drawable.placeholder); 

          } else if (images[position].equals(images[12])) { 
            // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/52a8/8d54/3134/6400/0208/0000/thumb/OK_HERBERT-ROYAN_2013_CATALOGUE_50Pages-HD.png?1386777938", R.drawable.placeholder); 

          } else if (images[position].equals(images[13])) { 
            // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
           UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/thumbnails/5295/c9ed/3131/6100/1120/0000/thumb/COUV_Alain.png?1386679978", R.drawable.placeholder); 
          } 
          else if (images[position].equals(images[14])) { 
           // tv.setText(data[position]); 
           iv.setImageResource(R.drawable.bookletplaceholder); 
            UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/thumbnails/5295/bcfa/3131/6100/1403/0000/thumb/landreau-joaillier.png?1386925524", R.drawable.placeholder); 
          } 
         else if (images[position].equals(images[15])) { 
           // tv.setText(data[position]); 
          iv.setImageResource(R.drawable.bookletplaceholder); 
           UrlImageViewHelper.setUrlDrawable(iv, "http://s3.amazonaws.com/votre-bijoutier-resources/booklets/documents/5295/c674/3131/6100/0e23/0000/thumb/OK_DANIEL_2013_CATALOGUE_50Pages-HD.png?1386672854", R.drawable.placeholder); 
         } 

          return myview; 
         } 
        } 

        protected void onPostExecute(Void result) { 

       } 
       } 

我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/grey" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".Home" > 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:background="@color/black" > 

     <ImageButton 
      android:id="@+id/imageButton2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginTop="21dp" 
      android:background="@null" 
      android:src="@drawable/contactbutton" /> 

     <ImageButton 
      android:id="@+id/imageButton1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignTop="@+id/imageButton2" 
      android:background="@null" 
      android:src="@drawable/backbutton" /> 

     <ImageButton 
      android:id="@+id/imageButton5" 
      android:layout_width="100dp" 
      android:layout_height="75dp" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="13dp" 
      android:background="@null" 
      android:scaleType="fitXY" 
      android:src="@drawable/logo_alone" /> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/imageButton5" 
      android:layout_centerHorizontal="true" 
      android:scaleType="fitXY" 
      android:src="@drawable/booklettitle" /> 

     <GridView 
      android:id="@+id/gridView" 
      android:layout_width="match_parent" 
      android:layout_height="325dp" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/imageView1" 
      android:layout_marginTop="16dp" 
      android:background="@color/white" 


      android:gravity="center" 
      android:numColumns="2" 

      android:verticalSpacing="5dp" > 

     </GridView> 

     <ImageButton 
      android:id="@+id/imageButton4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:background="@null" 
      android:layout_marginBottom="14dp" 
      android:src="@drawable/shoplistbutton" /> 

     <ImageButton 
      android:id="@+id/imageButton6" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/imageButton4" 
      android:layout_centerHorizontal="true" 
      android:background="@null" 
      android:src="@drawable/aroundme" /> 

     <ImageButton 
      android:id="@+id/imageButton3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_alignTop="@+id/imageButton6" 
      android:background="@null" 
      android:src="@drawable/philosophiebutton" /> 

    </RelativeLayout> 

</RelativeLayout> 

我Gidview细胞的xml:

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

    <ImageView 
     android:id="@+id/image" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:src="@drawable/bookletplaceholder" /> 

</LinearLayout> 

我的日志:

01-09 05:14:37.284: W/dalvikvm(1761): threadid=1: thread exiting with uncaught exception (group=0xb1a2ab90) 
01-09 05:14:37.314: E/AndroidRuntime(1761): FATAL EXCEPTION: main 
01-09 05:14:37.314: E/AndroidRuntime(1761): Process: com.b.votre, PID: 1761 
01-09 05:14:37.314: E/AndroidRuntime(1761): java.lang.NullPointerException 
01-09 05:14:37.314: E/AndroidRuntime(1761):  at com.begital.votre.BookletsGridActivity$Custom_view.getView(BookletsGridActivity.java:355) 
+0

你粘贴的日志的其余部分是不相关的,我把它标记为没有答案。告诉我们'BookletsGridActivity'中的行号355是什么。 –

+1

你是否在layout-xhdpi中有不同的布局? – Xarus

+0

iv.setImageResource(R.drawable.bookletplaceholder); – Xavier

回答

0

根据您的意见:

iv.setImageResource(R.drawable.bookletplaceholder); 

在这里,你可以有一个NPE只有ivnull

ImageView iv = (ImageView) myview.findViewById(R.id.imageView1); 

在这里,你会得到一个null如果myView层次结构不具有此ID的视图。

我用不同的布局(一个用于智能手机,一个7" 和一个10" )

确保事实上的特定智能手机布局包含ImageView与ID imageView1

+0

感谢laalto的回答。我最终更改了智能手机的布局并使用了列表视图。下次我会更加小心地使用ID。 – Xavier

相关问题