2017-09-01 150 views
0

我使用此代码播放视频:吹气布局上的按钮,点击

void videoIntilize(View v, final Context ctx, final Activity act) 
{ 
    SQLiteDatabase db; 
    db = act.openOrCreateDatabase("HadsKalme", Context.MODE_PRIVATE, null); 
    db.execSQL("CREATE TABLE IF NOT EXISTS videos (word VARCHAR,path TEXT,regdate VARCHAR);"); 

    final Cursor c = db.rawQuery("SELECT * FROM videos ORDER BY regdate DESC", null); 
    if (c.getCount() == 0) { 
     //Nothing TODO 
    } else { 
     int i = 0; 
     LayoutInflater vi = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     Typeface face = Typeface.createFromAsset(act.getAssets(), 
       "fonts/IRANSANS.TTF"); 
     while (c.moveToNext()) { 
      View ve = vi.inflate(R.layout.videotemplate, null, false); 
      // fill in any details dynamically here 
      TextView txt1 = (TextView) ve.findViewById(R.id.title); 
      txt1.setText(" ویدئوی کلمه "+c.getString(0)); 
      TextView txt2 = (TextView) ve.findViewById(R.id.date); 
      txt2.setText(" در تاریخ "+c.getString(2)); 
      txt2.setTypeface(face); 
      txt1.setTypeface(face); 
      ImageView img = (ImageView) ve.findViewById(R.id.img); 
      Bitmap thumbnail = ThumbnailUtils.createVideoThumbnail(c.getString(1), 
        MediaStore.Images.Thumbnails.MINI_KIND); 
      img.setImageBitmap(thumbnail); 
      ImageView player = (ImageView) ve.findViewById(R.id.playvideo); 
      player.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View arg0) { 
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(c.getString(1))); 
        intent.setDataAndType(Uri.parse(c.getString(1)), "video/mp4"); 
        act.startActivity(intent); 
       } 
      }); 
      // insert into main view 
      ViewGroup insertPoint = (ViewGroup) v.findViewById(R.id.lnrelans); 
      ve.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
      insertPoint.addView(ve); 
      i++; 
     } 
    } 
} 
在此代码,我使用吹气布局

,当我点击播放视频出现这样的错误:

E/AndroidRuntime :致命异常:主 工艺:ir.hiup.hadskalme,PID:22609 android.database.CursorIndexOutOfBoundsException:索引9请求,尺寸为9

如何解决这? 感谢您的时间和帮助;

+0

这是否发生在您点击所有imageViews? –

回答

0

您不应该直接从onClick方法使用游标c。 在下面的代码:

替换此代码

player.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(c.getString(1))); 
       intent.setDataAndType(Uri.parse(c.getString(1)), "video/mp4"); 
       act.startActivity(intent); 
      } 
     }); 

final String cursorUri = c.getString(1); 
player.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View arg0) { 
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(cursorUri)); 
        intent.setDataAndType(Uri.parse(cursorUri), "video/mp4"); 
        act.startActivity(intent); 
       } 
      }); 

如你直接使用游标,点击按钮时,你的光标指向位置afterLast这显然是不目前因此它是例外。 希望这个答案是有帮助的。

+0

感谢您的回复,问题解决<3 – Mahdi