2016-08-29 9 views
0

Ijob、Tabbed_Activity、PlaceholderFragmentという3つのクラスがあります。 Ijobクラスで作成した文字列をPlaceholderFragment onCreateViewに渡してカスタムページとして表示したいとします。私はまだ2番目と3番目の断片を作ります。 Ijobは仕事のリストです。 Tabbed_Activityはフラグメントのマネージャクラスです。 PlaceholderFragmentはフラグメントの1つです。ご覧のとおり、バンドル、インテント、getActivityを試しましたが、どれも動作していないようです。また、IjobからTabbed_Activityにデータを取得してから、PlaceholderFragmentにデータを取得しようとしました。助けてください。親/その他のアクティビティとフラグメント間のインテント/データ/バンドルの転送

Ijob.java

package com.example.administrator.signin; 

import android.app.ListActivity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.provider.Settings; 
import android.support.v4.app.Fragment; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.util.ArrayList; 
import java.util.HashMap; 

public class Ijob extends ListActivity { 

private ProgressDialog pDialog; 

// URL to get contacts JSON 

// private static String url = "http://0.0.00.00:xxxxx/Transporter/fetch_ffa_insp_emp.jsp?ecd=5d573aecfdc5e7a5"; 

// JSON Node names 

private static final String TAG_CON_NO = "CONSUMER_NO"; 
private static final String TAG_MET_NO = "METER_NO"; 
private static final String TAG_REC_ON = "RECEIVED_ON"; 
private static final String TAG_CON_NAME = "CON_NAME"; 
//private static final String TAG_CON_CAT = "CON_CAT"; 
private static final String TAG_MET_RAT = "MET_RAT"; 
private static final String TAG_CON_ADD = "CON_ADD"; 
//private static final String TAG_CON_ACC_ADD = "CON_ACC_ADD"; 
private static final String TAG_COM_RSN = "COM_RSN"; 

public static final String TAG_M_REF = "M_REF"; 
private static final String TAG_M_DATE = "M_DATE"; 
// //private static final String TAG_CON_CAT = " "; 
private static final String TAG_PREV_DATA = "PREV_DATA"; 
private static final String TAG_TELE_NO = "TELE_NO"; 
private static final String TAG_IE_DT_N_PRSNT_PREV_RDG = "IE_DT_N_PRSNT_PREV_RDG"; 
private static final String TAG_LCC_LRO_ROM = "LCC_LRO_ROM"; 




// Hashmap for ListView 
ArrayList<HashMap<String, String>> jobList; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.ijob); 

    jobList = new ArrayList<HashMap<String, String>>(); 

    ListView lv = getListView(); 

    // Listview on item click listener 
    lv.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 



      // getting values from selected ListItem 

      String CONSUMER_NO = ((TextView) view.findViewById(R.id.CON_NO)) 
        .getText().toString(); 
      String METER_NO = ((TextView) view.findViewById(R.id.MET_NO)) 
        .getText().toString(); 
      String MET_RAT = ((TextView) view.findViewById(R.id.MET_RAT)) 
        .getText().toString(); 
      String REC_ON = ((TextView) view.findViewById(R.id.REC_ON)) 
        .getText().toString(); 
      String CON_NAME = ((TextView) view.findViewById(R.id.CON_NAME)) 
        .getText().toString(); 
      String CON_ADD = ((TextView) view.findViewById(R.id.CON_ADD)) 
        .getText().toString(); 
      String COM_RSN = ((TextView) view.findViewById(R.id.COM_RSN)) 
       .getText().toString(); 
      String M_REF = ((TextView) view.findViewById(R.id.M_REF)) 
        .getText().toString(); 
      String M_DATE = ((TextView) view.findViewById(R.id.M_DATE)) 
        .getText().toString(); 
      String PREV_DATA = ((TextView) view.findViewById(R.id.PREV_DATA)) 
        .getText().toString(); 
      String TELE_NO = ((TextView) view.findViewById(R.id.TELE_NO)) 
        .getText().toString(); 
      String IE_DT_N_PRSNT_PREV_RDG = ((TextView) view.findViewById(R.id.IE_DT_N_PRSNT_PREV_RDG)) 
        .getText().toString(); 
      String LCC_LRO_ROM = ((TextView) view.findViewById(R.id.LCC_LRO_ROM)) 
        .getText().toString(); 


      // Starting single contact activity 
        Intent in = new Intent(getApplicationContext(), Tabbed_Activity.class); 


     // Bundle bundle= new Bundle(); 


     // bundle.putString(TAG_CON_NO, CONSUMER_NO); 
     // bundle.putString(TAG_MET_NO, METER_NO); 
     // bundle.putString(TAG_MET_RAT, MET_RAT); 
     // bundle.putString(TAG_REC_ON, REC_ON); 
     // bundle.putString(TAG_CON_NAME, CON_NAME); 
     // bundle.putString(TAG_CON_ADD, CON_ADD); 
     // bundle.putString(TAG_COM_RSN, COM_RSN); 
     // bundle.putString(TAG_M_REF, M_REF); 
     // bundle.putString(TAG_M_DATE, M_DATE); 
     // bundle.putString(TAG_PREV_DATA, PREV_DATA); 
     // bundle.putString(TAG_TELE_NO, TELE_NO); 
     // bundle.putString(TAG_IE_DT_N_PRSNT_PREV_RDG, IE_DT_N_PRSNT_PREV_RDG); 
     // bundle.putString(TAG_LCC_LRO_ROM, LCC_LRO_ROM); 

     // PlaceholderFragment argumentFragment = new PlaceholderFragment();//Get Fragment Instance 
     // argumentFragment.setArguments(bundle);//Finally set argument bundle to fragment */ 



     // in.putExtra(TAG_CON_NO, CONSUMER_NO); 
     // in.putExtra(TAG_MET_NO, METER_NO); 
     // in.putExtra(TAG_MET_RAT, MET_RAT); 
     // in.putExtra(TAG_REC_ON, REC_ON); 
     // in.putExtra(TAG_CON_NAME, CON_NAME); 
     // in.putExtra(TAG_CON_ADD, CON_ADD); 
     // in.putExtra(TAG_COM_RSN, COM_RSN); 
      in.putExtra(TAG_M_REF, M_REF); 
     // in.putExtra(TAG_M_DATE, M_DATE); 
     // in.putExtra(TAG_PREV_DATA, PREV_DATA); 
     // in.putExtra(TAG_TELE_NO, TELE_NO); 
     // in.putExtra(TAG_IE_DT_N_PRSNT_PREV_RDG, IE_DT_N_PRSNT_PREV_RDG); 
     // in.putExtra(TAG_LCC_LRO_ROM, LCC_LRO_ROM); */ 



      startActivity(in); 

     } 
    }); 

    // Calling async task to get json 
    new GetContacts().execute(); 
} 


/** 
* Async task class to get json by making HTTP call 
* */ 
private class GetContacts extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     // Showing progress dialog 
     pDialog = new ProgressDialog(Ijob.this); 
     pDialog.setMessage("Please wait..."); 
     pDialog.setCancelable(false); 
     pDialog.show(); 

    } 

    @Override 
    protected Void doInBackground(Void... arg0) { 
     // Creating service handler class instance 
     ServiceHandler sh = new ServiceHandler(); 

     // Making a request to url and getting response 
     String aid = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); 
     String url = "http://00.00.00.00:00000/Transporter/fetch_ffa_insp_emp_1.jsp?ecd=" + aid; 
     String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET); 

     Log.d("Response: ", "> " + jsonStr); 

     if (jsonStr != null) { 
      try { 
//    JSONObject jsonObj = new JSONObject(jsonStr); 

       JSONArray jobs = new JSONArray(jsonStr); 

       // Getting JSON Array node 
//    jobs = jsonObj.getJSONArray(""); 

       // looping through All Contacts 
       for (int i = 0; i < jobs.length(); i++) { 
        JSONObject c = jobs.getJSONObject(i); 

        String CON_NO = c.getString(TAG_CON_NO);// +" - "+c.getString(TAG_CON_CAT); 
        String MET_NO = c.getString(TAG_MET_NO); 
        String MET_RAT = c.getString(TAG_MET_RAT); 
        String REC_ON = c.getString(TAG_REC_ON); 
        String CON_NAME = (i + 1) + " . " + c.getString(TAG_CON_NAME); 
        String CON_ADD = c.getString(TAG_CON_ADD); //+" "+c.getString(TAG_CON_ACC_ADD); 
        String COM_RSN = c.getString(TAG_COM_RSN); 
        String M_REF = c.getString(TAG_M_REF); 
        String M_DATE = c.getString(TAG_M_DATE); 
        String PREV_DATA = c.getString(TAG_PREV_DATA); 
        String TELE_NO = c.getString(TAG_TELE_NO); 
        String IE_DT_N_PRSNT_PREV_RDG = c.getString(TAG_IE_DT_N_PRSNT_PREV_RDG); 
        String LCC_LRO_ROM = c.getString(TAG_LCC_LRO_ROM); 

        // tmp hashmap for single contact 
        HashMap<String, String> contact = new HashMap<String, String>(); 

        // adding each child node to HashMap key => value 
        contact.put(TAG_CON_NO, CON_NO); 
        contact.put(TAG_MET_NO, MET_NO); 
        contact.put(TAG_MET_RAT, MET_RAT); 
        contact.put(TAG_REC_ON, REC_ON); 
        contact.put(TAG_CON_NAME, CON_NAME); 
        contact.put(TAG_CON_ADD, CON_ADD); 
        contact.put(TAG_COM_RSN, COM_RSN); 

        contact.put(TAG_M_REF, M_REF); 
        contact.put(TAG_M_DATE, M_DATE); 
        contact.put(TAG_PREV_DATA, PREV_DATA); 
        contact.put(TAG_TELE_NO, TELE_NO); 
        contact.put(TAG_IE_DT_N_PRSNT_PREV_RDG, IE_DT_N_PRSNT_PREV_RDG); 
        contact.put(TAG_LCC_LRO_ROM, LCC_LRO_ROM); 

        // adding contact to contact list 
        jobList.add(contact); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } else { 
      Log.e("ServiceHandler", "Couldn't get any data from the url"); 
     } 

     return null; 
    } 


    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 
     // Dismiss the progress dialog 
     if (pDialog.isShowing()) 
      pDialog.dismiss(); 
     /** 
     * Updating parsed JSON data into ListView 
     * */ 
     ListAdapter adapter = new SimpleAdapter(
       Ijob.this, jobList, 
       R.layout.list_item, new String[]{TAG_CON_NO, TAG_MET_NO, TAG_MET_RAT, 
       TAG_REC_ON, TAG_CON_NAME, TAG_CON_ADD, TAG_COM_RSN, TAG_M_REF, TAG_M_DATE, TAG_PREV_DATA, TAG_TELE_NO, TAG_IE_DT_N_PRSNT_PREV_RDG, TAG_LCC_LRO_ROM}, new int[]{R.id.CON_NO, 
       R.id.MET_NO, R.id.MET_RAT, R.id.REC_ON, R.id.CON_NAME, R.id.CON_ADD, R.id.COM_RSN, R.id.M_REF, R.id.M_DATE, R.id.PREV_DATA, R.id.TELE_NO, R.id.IE_DT_N_PRSNT_PREV_RDG, R.id.LCC_LRO_ROM}); 

     setListAdapter(adapter); 
    } 

} 



} 

Tabbed_Activity.java

package com.example.administrator.signin; 


import android.content.Intent; 

import android.support.design.widget.TabLayout; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 

import android.widget.TextView; 

public class Tabbed_Activity extends AppCompatActivity { 


    public static final String TAG_M_REF = "M_REF"; 


    /** 
    * The {@link android.support.v4.view.PagerAdapter} that will provide 
    * fragments for each of the sections. We use a 
    * {@link FragmentPagerAdapter} derivative, which will keep every 
    * loaded fragment in memory. If this becomes too memory intensive, it 
    * may be best to switch to a 
    * {@link android.support.v4.app.FragmentStatePagerAdapter}. 
    */ 
    private SectionsPagerAdapter mSectionsPagerAdapter; 

    /** 
    * The {@link ViewPager} that will host the section contents. 
    */ 
    private ViewPager mViewPager; 

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


    Intent in = getIntent(); 
    String MET_REF = in.getStringExtra(TAG_M_REF); 
    Bundle bundle = new Bundle(); 
    bundle.putString("edttext", MET_REF); 
    PlaceholderFragment argumentFragment = new PlaceholderFragment();//Get Fragment Instance 
    argumentFragment.setArguments(bundle);//Finally set argument bundle to fragment */ 


    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    // Create the adapter that will return a fragment for each of the three 
    // primary sections of the activity. 
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 

    // Set up the ViewPager with the sections adapter. 
    mViewPager = (ViewPager) findViewById(R.id.container); 
    mViewPager.setAdapter(mSectionsPagerAdapter); 

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(mViewPager); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 

} 


@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_tabbed_, 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); 
} 

/** 
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to 
* one of the sections/tabs/pages. 
*/ 
public class SectionsPagerAdapter extends FragmentPagerAdapter { 

    public SectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     // getItem is called to instantiate the fragment for the given page. 
     // Return a PlaceholderFragment (defined as a static inner class below). 


     return PlaceholderFragment.newInstance(position); 


    } 

    @Override 
    public int getCount() { 
     // Show 3 total pages. 
     return 3; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     switch (position) { 
      case 0: 
       return "SECTION 1"; 
      case 1: 
       return "SECTION 2"; 
      case 2: 
       return "SECTION 3"; 
     } 
     return null; 
    } 
} 
} 

PlaceholderFragment.java

package com.example.administrator.signin; 

/** 
* Created by Administrator on 8/26/2016. 
*/ 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 
import android.widget.Toast; 

/** 
* A placeholder fragment containing a simple view. 
*/ 
public class PlaceholderFragment extends Fragment { 
    /** 
    * The fragment argument representing the section number for this 
    * fragment. 
    */ 
    private static final String ARG_SECTION_NUMBER = "section_number"; 

    public PlaceholderFragment() { 
    } 

    /** 
* Returns a new instance of this fragment for the given section 
* number. 
*/ 
public static PlaceholderFragment newInstance(int sectionNumber) { 
    PlaceholderFragment fragment = new PlaceholderFragment(); 
    Bundle args = new Bundle(); 
    args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
    fragment.setArguments(args); 
    return fragment; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.placeholder_1, container, false); 




    String strtext = getArguments().getString("edttext"); 


    TextView textView = (TextView) rootView.findViewById(R.id.m_ref); 


    textView.setText(strtext); 
    return rootView; 
} 
} 

答えて

0

あなたが活動中に作成されたプレースホルダのフラグメントを使用していないように思わoncreateメソッドはどこにありますか?ここでのみバンドルを設定します。 viewPagerで作成されたPlaceHolderFragmentsにバンドルがありません。ビューページでバンドルを設定する必要があります。

+0

ここで、ビューページでバンドルを作成する必要がありますか? –

関連する問題