我发现很难使用Fragment,因为我仍然没有足够的知识,所以我尝试首先使用Activity类创建项目,但是由于使用左键,我仍然必须将其转换为Fragment导航我需要某人的指导,因为我似乎无法在互联网上找到任何东西
一切都很好,但是当我更改代码的这一部分
new ReportsTab.GetHttpResponse(ReportsTab.this).execute();
它将显示错误“无法应用Gethttpresponse”
这是我的活动课程
public class Reports extends AppCompatActivity {
ListView ReportsListView;
ProgressBar progressBar;
Button status;
String HttpUrl = "http://................../reports_app2.php";
List<String> IdList = new ArrayList<>();
AlertDialog alertDialog;
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reports);
ReportsListView = (ListView)findViewById(R.id.listview1);
progressBar = (ProgressBar)findViewById(R.id.progressBar);
new GetHttpResponse(Reports.this).execute();
//Adding ListView Item click Listener.
ReportsListView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
Intent intent = new Intent(Reports.this,MainActivity.class);
// Sending ListView clicked value using intent.
intent.putExtra("ListViewValue", IdList.get(position).toString());
startActivity(intent);
//Finishing current activity after open next activity.
finish();
}
});
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer);
mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close);
mDrawerLayout.addDrawerListener(mToggle);
NavigationView nvDrawer = (NavigationView) findViewById(R.id.nv);
mToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setupDrawerContent(nvDrawer);
}
private class GetHttpResponse extends AsyncTask<Void, Void, Void>
{
public Context context;
String JSonResult;
List<ReportsJava> ReportsList;
public GetHttpResponse(Context context)
{
this.context = context;
}
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0)
{
// Passing HTTP URL to HttpServicesClass Class.
HttpServicesClass httpServicesClass = new HttpServicesClass(HttpUrl);
try
{
httpServicesClass.ExecutePostRequest();
if(httpServicesClass.getResponseCode() == 200)
{
JSonResult = httpServicesClass.getResponse();
if(JSonResult != null)
{
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(JSonResult);
JSONObject jsonObject;
ReportsJava reports;
ReportsList = new ArrayList<ReportsJava>();
for(int i=0; i<jsonArray.length(); i++)
{
reports = new ReportsJava();
jsonObject = jsonArray.getJSONObject(i);
// Adding Student Id TO IdList Array.
IdList.add(jsonObject.getString("id").toString());
//Adding Student Name.
if("0".equals(jsonObject.getString("status").toString()))
{
reports.LightpostStatus = "BLACKOUT";
}
else if("1".equals(jsonObject.getString("status").toString()))
{
reports.LightpostStatus = "FIXED";
}
else if("2".equals(jsonObject.getString("status").toString()))
{
reports.LightpostStatus = "DEFECTIVE";
}
reports.LightpostName = jsonObject.getString("lightpost_code").toString();
reports.LightpostAddress = jsonObject.getString("lightpost_location").toString();
reports.LightpostTime = jsonObject.getString("lightpost_time").toString();
ReportsList.add(reports);
}
}
catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else
{
Toast.makeText(context, httpServicesClass.getErrorMessage(), Toast.LENGTH_SHORT).show();
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
progressBar.setVisibility(View.GONE);
ReportsListView.setVisibility(View.VISIBLE);
ReportsListAdapterClass adapter = new ReportsListAdapterClass(ReportsList, context);
ReportsListView.setAdapter(adapter);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.menuLogout:
SharedPrefManager.getInstance(this).logout();
finish();
startActivity(new Intent(this, MainActivity.class));
break;
case R.id.menuSettings:
Toast.makeText(this, "You clicked settings", Toast.LENGTH_LONG).show();
break;
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
public void selectItemDrawer(MenuItem menuItem){
Fragment myFragment = null;
Class fragmentClass;
switch (menuItem.getItemId()){
case R.id.viewlights:
fragmentClass= ViewLightpost.class;
break;
case R.id.viewreports:
fragmentClass= ReportsTab.class;
break;
case R.id.viewaccount:
fragmentClass= EditAccount.class;
break;
case R.id.viewabout:
fragmentClass= AboutTab.class;
break;
default:
fragmentClass= ViewLightpost.class;
}
try{
myFragment=(Fragment) fragmentClass.newInstance();
}
catch (Exception e)
{
e.printStackTrace();
}
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.flcontent,myFragment).commit();
menuItem.setChecked(true);
setTitle(menuItem.getTitle());
mDrawerLayout.closeDrawers();
}
private void setupDrawerContent(NavigationView navigationView){
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
selectItemDrawer(item);
return false;
}
});
}
}
答案 0 :(得分:0)
new ReportsTab.GetHttpResponse(ReportsTab.this.getActivity()).execute();
从片段实例获取活动。