来自Recyclerview

时间:2015-09-06 12:44:38

标签: android android-recyclerview

我是Android应用开发的新手。我正尝试在用户点击的Activity项目中的另一个Recyclerview中显示图片和文字。我收到无法访问的语句错误。请帮帮我!

这是获取图片的代码:

imgUrl = new getDataAsyncTask().getImageUrl(recyclerView.getChildPosition(child));

和完整的Activity代码:

public class RestaurantsAndCafesActivity extends Activity {

public static final String URL = "http://192.168.8.101:80/jay.html";

private RecyclerView mRecyclerView;
private RCRecyclerAdapter adapter;
public String imgUrl;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.reyclerview_layout);

    /* Initialize RecyclerView */
    mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

    //parseResult();

    new getDataAsyncTask().execute();

    final GestureDetector mGestureDetector = new GestureDetector(RestaurantsAndCafesActivity.this, new GestureDetector.SimpleOnGestureListener() {

        @Override public boolean onSingleTapUp(MotionEvent e) {
            return true;
        }

    });


    mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
        @Override
        public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
            View child = recyclerView.findChildViewUnder(motionEvent.getX(),motionEvent.getY());
            if(child!=null && mGestureDetector.onTouchEvent(motionEvent)){
                Toast.makeText(RestaurantsAndCafesActivity.this,"Clicked Number "+recyclerView.getChildPosition(child), Toast.LENGTH_SHORT).show();
                return true;
                imgUrl = new getDataAsyncTask().getImageUrl(recyclerView.getChildPosition(child));
            }
            return false;
        }

        @Override
        public void onTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {

        }
    });
}
public class getDataAsyncTask extends AsyncTask<Void,Void,Void>{
     ArrayList<FeedItem> arrayList = new ArrayList<>();

    public String getImageUrl(int pos) 
    {
        return arrayList.get(pos).thumb;
    }

    @Override
    protected Void doInBackground(Void... params) {
        try {
                org.jsoup.nodes.Document document = Jsoup.connect(URL).get();
                for(Element e : document.select("img[src]"))
                {
                    Elements imgScr = e.select("img[src]");
                    String elements = imgScr.attr("src");
                    String text = imgScr.attr("alt");
                    String desc = imgScr.attr("title");

                    arrayList.add(new FeedItem(text, elements, desc));
                }
            }
        catch(IOException e)
            {

            e.printStackTrace();
            }
        return null;
    }

    ProgressDialog progressDialog;
    @Override
    protected void onPreExecute()
    {
        progressDialog = ProgressDialog.show(RestaurantsAndCafesActivity.this,"Loading","Please Wait",true,false);
    }
    @Override
    protected void onPostExecute(Void aVoid) {
        progressDialog.dismiss();
        adapter = new RCRecyclerAdapter(getApplicationContext(),arrayList);
        mRecyclerView.setAdapter(adapter);
    }
}

}

我只想获取图片网址,以便我可以通过Activity方法将其发送到另一个Intent.putExtra。请告诉我哪里出错了,或者我还有其他方法可以达到目标?

1 个答案:

答案 0 :(得分:0)

onInterceptTouchEvent

imgUrl = new getDataAsyncTask().getImageUrl(recyclerView.getChildPosition(child));需要在return true之前。它在return true;之后声明,使语句无法访问。