Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 填充listview API调用_Java_Android_Listview_Android Intent_Android Listview - Fatal编程技术网

Java 填充listview API调用

Java 填充listview API调用,java,android,listview,android-intent,android-listview,Java,Android,Listview,Android Intent,Android Listview,我是Android新手,正在尝试找出如何将搜索关键字字符串“tag”从searchActivity传递到SearchResult中下面的API URL,以便在SearchResult中的listview中显示 填充listview时遇到问题-我的设置或适配器中是否缺少某些内容 SearchActivity.java public class SearchActivity extends Activity { private static final String TAG = SearchActi

我是Android新手,正在尝试找出如何将搜索关键字字符串“tag”从searchActivity传递到SearchResult中下面的API URL,以便在SearchResult中的listview中显示

填充listview时遇到问题-我的设置或适配器中是否缺少某些内容

SearchActivity.java

public class SearchActivity extends Activity {
private static final String TAG = SearchActivity.class.getName();

private ArrayList<Photo> photos;
private PhotosAdapter photosAdapter;

EditText mSearch;
String searchedTag;
Button goSearch;

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

    mSearch = (EditText) findViewById(R.id.searchField);
    goSearch = (Button) findViewById(R.id.gosearch);

    goSearch.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            Intent result = new Intent(SearchActivity.this, SearchResult.class );
            result.putExtra ( "searchkey", mSearch.getText().toString() );
            startActivity(result);


        }
    });

}



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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
公共类SearchActivity扩展活动{
private static final String TAG=SearchActivity.class.getName();
私人ArrayList照片;
专用光适配器;
编辑文本搜索;
字符串搜索标记;
按钮搜索;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u search);
mSearch=(EditText)findViewById(R.id.searchField);
goSearch=(按钮)findviewbyd(R.id.goSearch);
goSearch.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
意向结果=新意向(SearchActivity.this、SearchResult.class);
result.putExtra(“searchkey”,mSearch.getText().toString());
星触觉(结果);
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.menu\u搜索,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
//noinspection SimplifiableIf语句
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}

SearchResult.java

 public class SearchResult extends Activity {

private ArrayList<Photo> photosSearch;
private PhotoAdapterSearch photosAdapterSearch;


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

    Intent myintent = getIntent();
    String tag = myintent.getStringExtra("searchkey");


    getTags(tag);

}
private void getTags(String tag) {



    photosSearch = new ArrayList<Photo>();

    // Create adapter
    photosAdapterSearch = new PhotoAdapterSearch(this, photosSearch);

    ListView listViewResult = (ListView) findViewById(R.id.listViewResult);
    // Set the adapter
    listViewResult.setAdapter(photosAdapterSearch);

    String TAGGED_IMAGES_URL = "https://api.instagram.com/v1/tags/"+tag+"/media/recent?access_token=55408742.1677ed0.ad911fb2100340d9807ab22162e58dc1";

    new AsycnGet().execute(TAGGED_IMAGES_URL);
}



public class AsycnGet extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... params) {
        try {
            URL url = new URL(params[0]);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
            String line;
            StringBuilder builder = new StringBuilder("");

            while ((line = reader.readLine()) != null)
                builder.append(line);

            return builder.toString();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return "";
    }

    @Override
    protected void onPostExecute(String s) {
        if (s != null && s != "") {
            try {
                JSONObject response = (JSONObject) new JSONTokener(s).nextValue();
                JSONArray photosJSON = response.getJSONArray("data");
                for (int i = 0; i < photosJSON.length(); i++) {
                    JSONObject photoJSON = photosJSON.getJSONObject(i);
                    Photo photosearch = new Photo();

                    photosearch.imageUrl = photoJSON.getJSONObject("images").getJSONObject("standard_resolution").getString("url");
                    photosearch.imageHeight = photoJSON.getJSONObject("images").getJSONObject("standard_resolution").getInt("height");


                    photosSearch.add(photosearch);
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {


    int id = item.getItemId();

    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}
公共类搜索结果扩展活动{
私有ArrayList Photosearch;
私人光适配器搜索光适配器搜索;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u search\u result);
Intent myintent=getIntent();
字符串标记=myintent.getStringExtra(“搜索键”);
getTags(tag);
}
私有void getTags(字符串标记){
PhotoSearch=新建ArrayList();
//创建适配器
PhotoAdapterSearch=新的PhotoAdapterSearch(这是PhotoSearch);
ListView listViewResult=(ListView)findViewById(R.id.listViewResult);
//设置适配器
setAdapter(PhotoAdapterSearch);
带标签的字符串\u图像\u URL=”https://api.instagram.com/v1/tags/“+tag+”/media/recent?access_token=55408742.1677ed0.ad911fb2100340d9807ab22162e58dc1”;
新的AsycnGet().execute(标记的图片和URL);
}
公共类AsycGet扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…参数){
试一试{
URL=新URL(参数[0]);
HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection();
BufferedReader=new BufferedReader(new InputStreamReader(urlConnection.getInputStream());
弦线;
StringBuilder=新的StringBuilder(“”);
而((line=reader.readLine())!=null)
builder.append(行);
返回builder.toString();
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回“”;
}
@凌驾
受保护的void onPostExecute(字符串s){
如果(s!=null&&s!=“”){
试一试{
JSONObject响应=(JSONObject)新的JSONTokener.nextValue();
JSONArray=response.getJSONArray(“数据”);
for(int i=0;i
PhotoAdapterSearch.Java 公共类光适配器搜索扩展阵列适配器{

public PhotoAdapterSearch(Context context, List<Photo> photos) {
    super(context, android.R.layout.simple_expandable_list_item_1, photos);
}


@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    //get photo at position
    final Photo photo = getItem(position);


    if (convertView == null) {
        convertView = LayoutInflater.from(getContext()).inflate(R.layout.image_search, null, false);
    }



    ImageView myImageViewsearch = (ImageView) convertView.findViewById(R.id.imagesearch);

    DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
    myImageViewsearch.getLayoutParams().height = displayMetrics.widthPixels;


    myImageViewsearch.setImageResource(0);
    // insert the image using picasso
    int ratio = photo.imageWidth / photo.imageHeight;
    int width = getContext().getResources().getDisplayMetrics().widthPixels;
    int height = width / Math.max(1, ratio);
    Picasso.with(getContext()).load(photo.imageUrl).resize(0, height).placeholder(R.drawable.placeholder).into(myImageViewsearch);


    return convertView;
}
}
publicphotoadaptersearch(上下文,照片列表){
超级(上下文、android.R.layout.simple\u可扩展\u列表\u项目\u 1、照片);
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
//在这个位置拍照
最终照片=获取项目(位置);
if(convertView==null){
convertView=LayoutInflater.from(getContext()).flate(R.layout.image\u search,null,false);
}
ImageView myImageViewsearch=(ImageView)convertView.findViewById(R.id.imagesearch);
DisplayMetrics DisplayMetrics=getContext().getResources().getDisplayMetrics();
myImageViewsearch.getLayoutParams().height=displayMetrics.widthPixels;
myImageViewsearch.setImageResource(0);
//使用毕加索插入图像
int比率=photo.imageWidth/photo.imageHeight;
int width=getContext().getResources().getDisplayMetrics().widthPixels;
内部高度=宽度/数学最大值(1,比率);
Picasso.with(getContext()).load(photo.imageUrl).调整大小(0,高度).占位符(R.drawable.placeholder).插入(myImageViewsearch);
返回视图;
}
}

您为适配器提供空列表,它将构建0项的ListView。 如果