Android 无法解析方法,尽管方法在我的类中
正如您所见,我在代码中创建了一个名为“fetch”的方法,当我尝试在“onRefresh”方法中调用它时,Android Studio告诉我无法解析“fetch”方法 如果您查看Android 无法解析方法,尽管方法在我的类中,android,Android,正如您所见,我在代码中创建了一个名为“fetch”的方法,当我尝试在“onRefresh”方法中调用它时,Android Studio告诉我无法解析“fetch”方法 如果您查看onRefresh方法和fetch方法中的内容,下面是我提供的代码 package com.petersoboyejo.csgoesportsscores; import android.os.Bundle; import android.support.annotation.Nullable; import andr
onRefresh
方法和fetch
方法中的内容,下面是我提供的代码
package com.petersoboyejo.csgoesportsscores;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends ActionBarActivity {
public static MainActivity instance = null;
private SwipeRefreshLayout swipeContainer;
private ListView drawerList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
instance = this;
setTitle("Matches");
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer);
ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(
this, mDrawerLayout, mToolbar,
R.string.open, R.string.close
);
mDrawerLayout.setDrawerListener(mDrawerToggle);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
mDrawerToggle.syncState();
drawerList = (ListView) findViewById(R.id.left_drawer);
drawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, getResources().getStringArray(R.array.app_sections)));
// drawerList.setOnItemClickListener(this);
if(savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new ImagesFragment())
.commit();
}
swipeContainer = (SwipeRefreshLayout) findViewById(R.id.swipeContainer);
swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
fetch();
}
});
}
@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_main, 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();
if(id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class ImagesFragment extends Fragment {
private ImageRecordsAdapter mAdapter;
public ImagesFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_images, container, false);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mAdapter = new ImageRecordsAdapter(getActivity());
ListView listView = (ListView) getView().findViewById(R.id.list1);
listView.setAdapter(mAdapter);
fetch();
}
private void fetch() {
JsonObjectRequest request = new JsonObjectRequest(
("https://api.import.io/store/data/2ac9dccd-71de-4aff-9efb-6643ac8bcc58/_query?input/webpage/url=http%3A%2F%2Fwww.hltv.org%2F%3Fpageid%3D188%26gameid%3D2&_user=65a387f2-10ed-413f-b4fc-b8f012d4c6ca&_apikey=65a387f2-10ed-413f-b4fc-b8f012d4c6ca%3A94W7S%2F461ByRd5Cr3dpu8F3djWvx%2Frk%2FKWKWnAfSxdp%2BWhWJmh0VCK8sZoBi4vnyXLgxIGaEQ%2BO2Vk4IqEs%2FYg%3D%3D"),
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
try {
List<ImageRecord> imageRecords = parse(jsonObject);
mAdapter.swapImageRecords(imageRecords);
} catch (JSONException e) {
Toast.makeText(getActivity(), "Unable to parse data: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(getActivity(), "Unable to fetch data: " + volleyError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
VolleyApplication.getInstance().getRequestQueue().add(request);
}
private List<ImageRecord> parse(JSONObject json) throws JSONException {
ArrayList<ImageRecord> records = new ArrayList<ImageRecord>();
JSONArray jsonImages = json.getJSONArray("results");
for (int i = 0; i < jsonImages.length(); i++) {
JSONObject jsonImage = jsonImages.getJSONObject(i);
String teamoneflag = jsonImage.getString("teamoneflag");
String teamtwoflag = jsonImage.getString("teamtwoflag");
String teamone = jsonImage.getString("teamone");
String teamtwo = jsonImage.getString("teamtwo");
String event = jsonImage.getString("event");
String dateplayed = jsonImage.getString("dateplayed");
String map = jsonImage.getString("map");
ImageRecord record = new ImageRecord(teamoneflag, teamtwoflag, teamone, teamtwo, event, dateplayed, map);
records.add(record);
}
return records;
}
}
}
package com.petersoboyejo.csgoesportscores;
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v4.app.Fragment;
导入android.support.v4.widget.DrawerLayout;
导入android.support.v4.widget.swiperFreshLayout;
导入android.support.v7.app.ActionBarActivity;
导入android.support.v7.app.ActionBarDrawerToggle;
导入android.support.v7.widget.Toolbar;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
导入com.android.volley.Response;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.JsonObjectRequest;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.List;
公共类MainActivity扩展了ActionBarActivity{
公共静态MainActivity实例=null;
私人swipeContainer;
私有列表视图抽屉列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
实例=此;
setTitle(“匹配”);
工具栏mToolbar=(工具栏)findViewById(R.id.Toolbar);
设置支持操作栏(mToolbar);
抽屉布局mDrawerLayout=(抽屉布局)findViewById(R.id.drawer);
ActionBarDrawerToggle mDrawerToggle=新建ActionBarDrawerToggle(
这个,mDrawerLayout,mToolbar,
R.string.open,R.string.close
);
mDrawerLayout.setDrawerListener(mDrawerToggle);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
mDrawerToggle.syncState();
抽屉列表=(列表视图)findViewById(R.id.left\u抽屉);
drawerList.setAdapter(新的ArrayAdapter(这个,R.layout.drawer_列表_项,getResources().getStringArray(R.array.app_节));
//drawerList.setonicmclicklistener(this);
如果(savedInstanceState==null){
getSupportFragmentManager().beginTransaction()
.add(R.id.container,新的ImagesFragment())
.commit();
}
swipeContainer=(SwipeRefreshLayout)findViewById(R.id.swipeContainer);
swipeContainer.setOnRefreshListener(新的SwipeRefreshLayout.OnRefreshListener(){
@凌驾
公共void onRefresh(){
fetch();
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
/**
*包含简单视图的占位符片段。
*/
公共静态类ImagesFragment扩展了片段{
私人影像记录装置;
公共图像片段(){
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
返回充气机。充气(R.layout.fragment_图像,容器,错误);
}
@凌驾
ActivityCreated上的公共无效(@Nullable Bundle savedinStateCState){
super.onActivityCreated(savedInstanceState);
mAdapter=newImageRecordsAdapter(getActivity());
ListView ListView=(ListView)getView().findViewById(R.id.list1);
setAdapter(mAdapter);
fetch();
}
私有void fetch(){
JsonObjectRequest=新的JsonObjectRequest(
("https://api.import.io/store/data/2ac9dccd-71de-4aff-9efb-6643ac8bcc58/_query?input/webpage/url=http%3A%2F%2Fwww.hltv.org%2F%3Fpageid%3D188%26gameid%3D2&_user=65a387f2-10ed-413f-b4fc-b8f012d4c6ca和(u apikey=65a387f2-10ed-413f-b4fc-b8f012d4c6ca%3A94W7S%2F461ByRd5Cr3dpu8F3djWvx%2Frk%2KWKWKWKWNAFXDP%2BWHWWWWJH0VCK8SZOBI4VNYXXIGAEQ%2BO2Vk4IqEs%2FYg%3D%3D”),
无效的
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject JSONObject){
试一试{
List imageRecords=parse(jsonObject);
mAdapter.swapImageRecords(图像记录);
}捕获(JSONException e){
Toast.makeText(getActivity(),“无法分析数据:”+e.getMessage(),Toast.LENGTH_SHORT).show();
}
}
},
新的Response.ErrorListener(){
@凌驾
公共错误响应(截击错误截击错误){
Toast.makeText(getActivity(),“无法获取数据:”+volleyError.getMessage(),Toast.LENGTH_SHORT.show();
}
});
截击
((ImagesFragment) MainActivity.this.getSupportFragmentManager().findFragmentById(R.id.container)).fetch();