2016-07-31 17 views
0
public class Drawing_Activity extends Activity{ 

ViewPager viewpager; 
TextView txtstep; 
ImageView imageView; 
Button btnback,btnnext; 
RelativeLayout reldraw; 
ImageView imgcolorpick,imgpencil,imgstroke,imgeraser,imgclearr,imgsave; 
private static int TOTAL_IMAGES; 
private int currentPosition = 0; 
protected Dialog dialog; 
protected View layout; 
protected int progress; 
protected float stroke = 6; 
private String fileName; 
PaintView pv; 
int count=0; 
String get1; 
private AdView mAdView; 

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.drawing_activity); 

    mAdView = (AdView) findViewById(R.id.adView); 
    mAdView.loadAd(new AdRequest.Builder().build()); 

    btnback=(Button)findViewById(R.id.button_prev); 
    btnnext=(Button)findViewById(R.id.button_next); 
    reldraw=(RelativeLayout)findViewById(R.id.rell); 
    viewpager=(ViewPager)findViewById(R.id.view_pagercake); 
    txtstep=(TextView)findViewById(R.id.textView_stepsize); 

    Intent i=getIntent(); 
    get1=i.getExtras().getString("Image_Array"); 
    //Log.e("get1---", get1); 

    imgcolorpick=(ImageView)findViewById(R.id.imageView2_color); 
    imgstroke=(ImageView)findViewById(R.id.imageView4_stroke); 
    imgclearr=(ImageView)findViewById(R.id.imageView5_clear); 
    imgeraser=(ImageView)findViewById(R.id.imageView3_eraser); 
    imgpencil=(ImageView)findViewById(R.id.imageView1_pencil); 
    imgsave=(ImageView)findViewById(R.id.imageView1_save); 

    imgpencil.setImageResource(R.drawable.brush_active_btn); //click of pencil 

    this.pv = new PaintView(this); 
    this.pv.togglePencil(true); 
    reldraw .addView(pv); 

    imgcolorpick.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      showColorPickerDialogDemo(); 
      //Toast.makeText(getApplicationContext(), "hiiii", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    imgstroke.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      strokeDialog(); 
     } 
    }); 

    imgclearr.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Drawing_Activity.this.pv.clear(); 
     } 
    }); 

    imgeraser.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Drawing_Activity.this.pv.togglePencil(false); 
      imgeraser.setImageResource(R.drawable.erase_active_btn); 
      imgpencil.setImageResource(R.drawable.brush_btn); 
     } 
    }); 

    imgpencil.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Drawing_Activity.this.pv.togglePencil(true); 
      imgpencil.setImageResource(R.drawable.brush_active_btn); 
      imgeraser.setImageResource(R.drawable.erase_btn); 
     } 
    }); 
    imgsave.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Drawing_Activity.this.save(); 
     } 
    }); 

    viewpager.setOnPageChangeListener(new OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int arg0) { 
      // TODO Auto-generated method stub 
      txtstep.setText(String.valueOf(arg0)+"/"+TOTAL_IMAGES); 
     } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onPageScrollStateChanged(int arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 

    ImagePagerAdapter adapter = new ImagePagerAdapter(); 
    viewpager.setAdapter(adapter); 
    if(get1.equals("image_car")) 
    { 
     TOTAL_IMAGES = (Image_Arrays.image_car.length - 1); 
    } 
    else if(get1.equals("image_house")) 
    { 
     TOTAL_IMAGES = (Image_Arrays.image_house.length - 1); 
    } 
    else if(get1.equals("image_horse")) 
    { 
     TOTAL_IMAGES = (Image_Arrays.image_horse.length - 1); 
    } 
    else if(get1.equals("image_bird")) 
    { 
     TOTAL_IMAGES = (Image_Arrays.image_bird.length - 1); 
    } 
    else if(get1.equals("image_elephant")) 
    { 
     TOTAL_IMAGES = (Image_Arrays.image_elephant.length - 1); 
    } 
    else if(get1.equals("image_shoes")) 
    { 
     TOTAL_IMAGES = (Image_Arrays.image_shoes.length - 1); 
    } 
    else if(get1.equals("image_bottle")) 
    { 
     TOTAL_IMAGES = (Image_Arrays.image_bottle.length - 1); 

    } 
    else 
    { 
     TOTAL_IMAGES = (Image_Arrays.image_car.length - 1); 
    } 
    txtstep.setText(String.valueOf(0)+"/"+TOTAL_IMAGES); 
    btnback.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      currentPosition = viewpager.getCurrentItem(); 

      int positionToMoveTo = currentPosition; 
      positionToMoveTo--; 
      if (positionToMoveTo < 0) { 
       positionToMoveTo = TOTAL_IMAGES; 
      } 
      viewpager.setCurrentItem(positionToMoveTo); 
     } 
    }); 
    btnnext.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      currentPosition = viewpager.getCurrentItem(); 

      int positionToMoveTo = currentPosition; 
      positionToMoveTo++; 
      if (currentPosition == TOTAL_IMAGES) { 
       positionToMoveTo = 0; 
      } 
      viewpager.setCurrentItem(positionToMoveTo); 

     } 
    }); 

} 
protected int getItem(int i) { 
    // TODO Auto-generated method stub 
    return 0; 
} 
private class ImagePagerAdapter extends PagerAdapter { 

    @Override 
    public int getCount() { 
     if(get1.equals("image_car")) 
     { 
      return Image_Arrays.image_car.length; 
     } 
     else if(get1.equals("image_house")) 
     { 
      return Image_Arrays.image_house.length; 
     } 
     else if(get1.equals("image_horse")) 
     { 
      return Image_Arrays.image_horse.length; 
     } 
     else if(get1.equals("image_bird")) 
     { 
      return Image_Arrays.image_bird.length; 
     } 
     else if(get1.equals("image_elephant")) 
     { 
      return Image_Arrays.image_elephant.length; 
     } 
     else if(get1.equals("image_shoes")) 
     { 
      return Image_Arrays.image_shoes.length; 
     } 
     else if(get1.equals("image_bottle")) 
     { 
      return Image_Arrays.image_bottle.length; 

     } 
     else 
     { 
      return Image_Arrays.image_car.length; 

     } 

    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == ((ImageView) object); 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     Context context = Drawing_Activity.this; 

     imageView = new ImageView(context); 

     imageView.setScaleType(ImageView.ScaleType.FIT_XY); 

     if(get1.equals("image_car")) 
     { 
      imageView.setImageResource(Image_Arrays.image_car[position]); 
     } 
     else if(get1.equals("image_house")) 
     { 
      imageView.setImageResource(Image_Arrays.image_house[position]); 
     } 
     else if(get1.equals("image_horse")) 
     { 
      imageView.setImageResource(Image_Arrays.image_horse[position]); 
     } 
     else if(get1.equals("image_bird")) 
     { 
      imageView.setImageResource(Image_Arrays.image_bird[position]); 
     } 
     else if(get1.equals("image_elephant")) 
     { 
      imageView.setImageResource(Image_Arrays.image_elephant[position]); 
     } 
     else if(get1.equals("image_shoes")) 
     { 
      imageView.setImageResource(Image_Arrays.image_shoes[position]); 
     } 
     else if(get1.equals("image_bottle")) 
     { 
      imageView.setImageResource(Image_Arrays.image_bottle[position]); 

     } 
     else 
     { 
      imageView.setImageResource(Image_Arrays.image_car[position]); 
     } 

     ((ViewPager) container).addView(imageView, 0); 

     return imageView; 

    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     ((ViewPager) container).removeView((ImageView) object); 
    } 
} 

private void showColorPickerDialogDemo() { 

    int initialColor = Color.WHITE; 

    ColorPickerDialog colorPickerDialog = new ColorPickerDialog(this, initialColor, new OnColorSelectedListener() { 

     @Override 
     public void onColorSelected(int color) { 

      Drawing_Activity.this.pv.setColor(color); 
     } 

    }); 
    colorPickerDialog.show(); 
} 

private class PaintView extends View { 

    private Paint paint; 
    private Bitmap bmp; 
    private Paint bmpPaint; 
    private Canvas canvas; 
    private Context context; 
    private float mX, mY; 
    private Path path; 
    private static final float TOUCH_TOLERANCE = 0.8f; 
    private int colour; 
    private Bitmap bgImage; // image that gets loaded 
    protected Boolean pencil; 

    private PaintView(Context c) { 
     super(c); 

     setDrawingCacheEnabled(true); // to save images 

     this.context = c; 
     this.colour = Color.BLACK; 
     this.path = new Path(); 
     this.bmpPaint = new Paint(); 
     this.paint = new Paint(); 
     this.paint.setAntiAlias(true); 
     this.paint.setDither(true); 
     this.paint.setColor(this.colour); 
     this.paint.setStyle(Paint.Style.STROKE); 
     this.paint.setStrokeJoin(Paint.Join.ROUND); 
     this.paint.setStrokeCap(Paint.Cap.ROUND); 
     this.paint.setStrokeWidth(3); 
    } 

    @Override 
    protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
     super.onSizeChanged(w, h, oldw, oldh); 
     this.bgImage = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); 
     this.bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); 
     this.canvas = new Canvas(this.bmp); 
     bgImage = BitmapFactory.decodeResource(getResources(), 
       R.drawable.inner_bg).copy(Bitmap.Config.ARGB_8888, true); 

    } 

    private void touchStart(float x, float y) { 
     this.path.reset(); 
     this.path.moveTo(x, y); 
     this.mX = x; 
     this.mY = y; 
    } 

    private void touchUp() { 
     this.path.lineTo(mX, mY); 
     // commit the path to our offscreen 
     this.canvas.drawPath(this.path, paint); 
     // kill this so we don't double draw 
     this.path.reset(); 
    } 

    private void touchMove(float x, float y) { 
     float dx = Math.abs(x - this.mX); 
     float dy = Math.abs(y - this.mY); 
     if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) { 
      // draws a quadratic curve 
      this.path.quadTo(mX, mY, (x + mX)/2, (y + mY)/2); 
      mX = x; 
      mY = y; 
     } 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent e) { 
     float x = e.getX(); 
     float y = e.getY(); 

     switch (e.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      this.touchStart(x, y); 
      this.touchMove(x + 0.8f, y + 0.8f); 
      invalidate(); 
      break; 
     case MotionEvent.ACTION_MOVE: 
      this.touchMove(x, y); 
      invalidate(); 
      break; 
     case MotionEvent.ACTION_UP: 
      this.touchUp(); 

      invalidate(); 
      break; 
     } 
     return true; 
    } 

    // Called on invalidate(); 
    @Override 
    protected void onDraw (Canvas canvas) { 
     canvas.drawColor(Color.WHITE); 
     canvas.drawBitmap(this.bgImage, 0, 0, this.bmpPaint); 

     canvas.drawBitmap(this.bmp, 0, 0, this.bmpPaint); 

     canvas.drawPath(this.path, this.paint); 

    } 

    /* 
    * Menu called methods 
    */ 
    protected void togglePencil(Boolean b) { 
     if (b) { // set pencil 
      paint.setXfermode(null); 
      this.pencil = true; 

     } else { // set eraser 
      paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); 
      this.pencil = false; 
     } 
     //Draw_Dog.this.setTitle(); 

    } 

    public void setColor(int c) { 
     this.paint.setColor(c); 
     this.colour = c; 
    } 

    protected int getColor() { 
     return this.colour; 
    } 

    protected void clear() { 
     this.path = new Path(); // empty path 
     this.canvas.drawColor(Color.WHITE); 
     if (this.bgImage != null) { 
      this.canvas.drawBitmap(this.bgImage, 0, 0, null); 
     } 
     this.invalidate(); 
    } 
} 
public void strokeDialog() { 

    this.dialog = new Dialog(this); 
    this.dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

    LayoutInflater inflater = (LayoutInflater) this 
      .getSystemService(LAYOUT_INFLATER_SERVICE); 
    this.layout = inflater.inflate(R.layout.stroke_dialog, 
      (ViewGroup) findViewById(R.id.dialog_root_element)); 

    SeekBar dialogSeekBar = (SeekBar) layout 
      .findViewById(R.id.dialog_seekbar); 

    dialogSeekBar.setThumbOffset(convertDipToPixels(9.5f)); 
    dialogSeekBar.setProgress((int) this.stroke * 2); 

    this.setTextView(this.layout, String.valueOf(Math.round(this.stroke))); 

    dialogSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 
     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      // herp 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 
      // derp 
     } 

     @Override 
     public void onProgressChanged(SeekBar seekBark, int progress, 
       boolean fromUser) { 
      Drawing_Activity.this.progress = progress/2; 
      Drawing_Activity.this 
      .setTextView(Drawing_Activity.this.layout, "" + Drawing_Activity.this.progress); 

      Button b = (Button) Drawing_Activity.this.layout 
        .findViewById(R.id.dialog_button); 
      b.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Drawing_Activity.this.stroke = Drawing_Activity.this.progress; 
        Drawing_Activity.this.pv.paint.setStrokeWidth(Drawing_Activity.this.stroke); 
        Drawing_Activity.this.dialog.dismiss(); 
       } 
      }); 
     } 
    }); 

    dialog.setContentView(layout); 
    dialog.show(); 
} 
protected void setTextView(View layout, String s) { 
    TextView text = (TextView) layout.findViewById(R.id.stroke_text); 
    text.setText(s); 
} 

private int convertDipToPixels(float dip) { 
    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    float density = metrics.density; 
    return (int) (dip * density); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 

} 

public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 

    // Toast.makeText(this, "Save", Toast.LENGTH_SHORT).show(); 
    case R.id.Share: 
     reldraw.setDrawingCacheEnabled(true); 
     String path = Environment.getExternalStorageDirectory().toString(); 
     OutputStream fOut = null; 
     File file = new File(path, 
       "Android/data/com.viavilab.androiddrawing;/cache/share_cache.jpg"); 
     file.getParentFile().mkdirs(); 

     try { 
      file.createNewFile(); 
     } catch (Exception e) { 
      //Log.e("draw_save", e.toString()); 
     } 

     try { 
      fOut = new FileOutputStream(file); 
     } catch (Exception e) { 
      //Log.e("draw_save1", e.toString()); 
     } 

     if (this.reldraw.getDrawingCache() == null) { 
      //Log.e("lal", "tis null"); 
     } 

     this.reldraw.getDrawingCache() 
     .compress(Bitmap.CompressFormat.JPEG, 85, fOut); 

     try { 
      fOut.flush(); 
      fOut.close(); 
     } catch (IOException e) { 
      //Log.e("draw_save1", e.toString()); 
     } 

     Intent share = new Intent(Intent.ACTION_SEND); 
     share.setType("image/jpeg"); 
     share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getAbsolutePath())); 

     startActivity(Intent.createChooser(share, "Share Image")); 
     return true; 

    case R.id.RateApp: 
     final String appName = getPackageName(); 
     try { 
      startActivity(new Intent(Intent.ACTION_VIEW, 
        Uri.parse("market://details?id=" + appName))); 
     } catch (android.content.ActivityNotFoundException anfe) { 
      startActivity(new Intent(
        Intent.ACTION_VIEW, 
        Uri.parse("http://play.google.com/store/apps/details?id=" 
          + appName))); 
     } 
     return true; 

    case R.id.About: 
     Intent intentabout=new Intent(getApplicationContext(),AboutActivity.class); 
     startActivity(intentabout); 

    } 

    return(super.onOptionsItemSelected(item)); 
} 

public void save() { // called on save menu 

    reldraw.setDrawingCacheEnabled(true); 
    String path = Environment.getExternalStorageDirectory().toString(); 
    OutputStream fOut = null; 
    File file = new File(path, 
      getString(R.string.app_name)+"/"+"AD_"+System.currentTimeMillis()+".jpg"); 
    Toast.makeText(getApplicationContext(), "Saved", Toast.LENGTH_SHORT).show(); 
    file.getParentFile().mkdirs(); 

    try { 
     file.createNewFile(); 
    } catch (Exception e) { 
     Log.e("draw_save", e.toString()); 
    } 

    try { 
     fOut = new FileOutputStream(file); 
    } catch (Exception e) { 
     Log.e("draw_save1", e.toString()); 
    } 

    if (this.reldraw.getDrawingCache() == null) { 
     Log.e("lal", "tis null"); 
    } 

    this.reldraw.getDrawingCache() 
    .compress(Bitmap.CompressFormat.JPEG, 85, fOut); 

    try { 
     fOut.flush(); 
     fOut.close(); 
    } catch (IOException e) { 
     Log.e("draw_save1", e.toString()); 
    } 
} 

java.lang.RuntimeException: Die Aktivität ComponentInfo konnte nicht gestartet werden. java.lang.ArrayIndexOutOfBoundsException: length = 7; index = 7

}

public class MainActivity erstreckt Aktivität {

ListView lsvmain; 
    ArrayList<List_Item> ListArray = new ArrayList<List_Item>(); 
    List_Adapter listadapter; 
    String[] title,description; 
    private InterstitialAd mInterstitial; 
    private AdView mAdView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     title= getResources().getStringArray(R.array.names); 
     description= getResources().getStringArray(R.array.descriptions); 

     lsvmain=(ListView)findViewById(R.id.listView_main); 

     for(int i=0; i<title.length;i++) 
     { 
      List_Item item=new List_Item(description[i], title[i],Image_Arrays.icons[i]); 
      ListArray.add(item); 
     } 

     listadapter = new List_Adapter(this, R.layout.list_item,ListArray); 
     lsvmain.setAdapter(listadapter); 

     lsvmain.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int position, 
        long arg3) { 
       // TODO Auto-generated method stub 
       //Toast.makeText(getApplicationContext(), ""+position, Toast.LENGTH_SHORT).show(); 
       if(position==0) 
       { 
       Intent intentnew=new Intent(getApplicationContext(),Drawing_Activity.class); 
       intentnew.putExtra("Image_Array", "image_car"); 
       startActivity(intentnew); 
       } 
       else if(position==1) 
       { 
       Intent intentnew=new Intent(getApplicationContext(),Drawing_Activity.class); 
       intentnew.putExtra("Image_Array", "image_house"); 
       startActivity(intentnew); 
       } 
       else if(position==2) 
       { 
       Intent intentnew=new Intent(getApplicationContext(),Drawing_Activity.class); 
       intentnew.putExtra("Image_Array", "image_horse"); 
       startActivity(intentnew); 
       } 
       else if(position==3) 
       { 
       Intent intentnew=new Intent(getApplicationContext(),Drawing_Activity.class); 
       intentnew.putExtra("Image_Array", "image_bird"); 
       startActivity(intentnew); 
       } 
       else if(position==4) 
       { 
       Intent intentnew=new Intent(getApplicationContext(),Drawing_Activity.class); 
       intentnew.putExtra("Image_Array", "image_elephant"); 
       startActivity(intentnew); 
       } 
       else if(position==5) 
       { 
       Intent intentnew=new Intent(getApplicationContext(),Drawing_Activity.class); 
       intentnew.putExtra("Image_Array", "image_shoes"); 
       startActivity(intentnew); 
       } 
       else if(position==6) 
       { 
       Intent intentnew=new Intent(getApplicationContext(),Drawing_Activity.class); 
       intentnew.putExtra("Image_Array", "image_bottle"); 
       startActivity(intentnew); 
       } 

      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 


     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      // Toast.makeText(appContext, "BAck", Toast.LENGTH_LONG).show(); 
      AlertDialog.Builder alert = new AlertDialog.Builder(
        MainActivity.this); 
      alert.setTitle(getString(R.string.app_name)); 
      alert.setIcon(R.drawable.app_icon); 
      alert.setMessage("Are You Sure You Want To Quit?"); 

      alert.setPositiveButton("Ok", 
        new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, 
         int whichButton) { 

        if (mInterstitial.isLoaded()) { 
         mInterstitial.show(); 
        } 
        finish(); 
       } 
      }); 

      alert.setNegativeButton("Rate App", 
        new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int which) { 

        final String appName = getPackageName(); 
        try { 
         startActivity(new Intent(Intent.ACTION_VIEW, 
           Uri.parse("market://details?id=" 
             + appName))); 
        } catch (android.content.ActivityNotFoundException anfe) { 
         startActivity(new Intent(
           Intent.ACTION_VIEW, 
           Uri.parse("http://play.google.com/store/apps/details?id=" 
             + appName))); 
        } 
       } 
      }); 
      alert.show(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
} 

07-31 10: 28: 10,311: E/Android Runtime (6707): fatal EXCEPTION: main 07 -31 10: 28: 10,311: E/Android Runtime (6707): java.lang.RuntimeException: Kann nicht Aktivität ComponentInfo {com.viavilab.androiddrawing/com.viavilab.androiddrawing.MainActivity} starten: java.lang.ArrayIndexOutOfBounds Ausnahme: Länge = 7; index = 7 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2204) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2254) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um android.app.ActivityThread.access $ 600 (ActivityThread.java : 141) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1234) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um android.os.Handler.dispatchMessage (Handler.java:99) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um android.os.Looper.loop (Looper.java:137) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um android.app.ActivityThread.main (ActivityThread.java:5069) 07- 31 10: 28: 10.311: E/AndroidRuntime (6707): um java.lang.reflect.Method.invokeNative (native Methode) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um java .lang.reflect.Method.invoke (Methode.java:511) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit. java: 793) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um com.android.internal.os.ZygoteInit.main (ZygoteInit.java:560) 07-31 10: 28: 10.311 : E/AndroidRuntime (6707): um dalvik.system.NativeStart.main (Native Methode) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): Verursacht von: java.lang.ArrayIndexOutOfBoundsException: length = 7; index = 7 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um com.viavilab.androiddrawing.MainActivity.onCreate (MainActivity.java:50) 07-31 10: 28: 10.311: E/Android Runtime (6707): bei android.app.Activity.performCreate (Activity.java:5104) 07-31 10: 28: 10,311: E/Android Runtime (6707): bei android.app.Instrumentation.callActivityOnCreate (Instrumentation. java: 1092) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): um android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2148) 07-31 10: 28: 10.311: E/AndroidRuntime (6707): ... 11 mehr

+0

Das Problem gelöst? Es gibt auch eine Variable "i" der Absicht. Zwei Variablen mit demselben Namen können zu einem Fehler führen. Überprüft, denke ich. –

+0

Warum Gesamtbilder minus 1? –

+0

Ich habe den Code einfach so gekauft, aber jetzt antwortet der Entwickler nicht. und ich bin nicht so gut in Java:/ – samfun

Antwort

0
com.viavilab.androiddrawing.MainActivity.onCreate(MainActivity.java:50) 07-31 10:28:10.311: 

Es heißt, Ihr Fehler ist in der 50. Zeile der Methode onCreate und der Fehler ist, dass Ihr Index aus dem Array ist, überprüfen Sie bitte Ihren Code.

+0

können Sie mir bitte zeigen, in der Frage, die ich den Mainactivity-Code veröffentlicht, können Sie mir zeigen, was soll ich bitte tun? – samfun

+0

Können Sie mir den Code in genau 50. Zeile zeigen? Ich weiß nicht, ob stackoverflow die Zeilennummer – berlloon

+0

zeigen kann Ich habe Ihren Code in meinen Editor kopiert und er zeigt die 50. Zeile ist "else if (position = 2)" – berlloon

0

Versuchen Sie es mit

for(int i=0; i<title.length -1 ;i++) 

anstelle des ursprünglichen Code. Aber ich muss überprüfen, wie array.length und array.length -1 wirklich funktionieren. :)

Ich denke, wenn es um index und die length ein array kommt, ist array.length -1 die Lösung. Aber something.length in File InputSteam oder andere gleichermaßen.

Und bitte Verständnis, dass wir index ein array wie folgt aus:

title [] = [ index 0 , index 1, index 2 , ... index (array.lenth -1) ] 

Jetzt index der Code ist 7 und Ihre array.length ist nur 7. Wenn der Wert von index 7 ist? :)

+0

Das Problem ist, dass der Code funktionierte, aber sobald ich die Arrays und die Bilder geändert habe, zerbricht es, sobald ich es geöffnet habe. Ich werde die image_arrays Aktivität – samfun

0

Diese Linie in Ordnung ist, werden Sie jedes Element von Array bekommen:

for(int i=0; i<title.length;i++) { 

Das Problem kommt hier:

List_Item item=new List_Item(description[i], title[i],Image_Arrays.icons[i]); 

Das Array "Image_Arrays" ist kleiner als Array "title" und das löst eine Ausnahme aus. Sie können dort Längen testen:

Log.d("ArrayLength", "title: " + String.valueOf(title.length) + " icons: "+ String.valueOf(Image_Arrays.icons.length)) 
+1

vielen Dank für Ihre Antworten, das ist bei weitem die beste Website für Android. ich habe das Problem gelöst. Danke nochmal – samfun