2016-06-29 3 views
0

Я хочу передать данные с моей страницы входа на страницу моих подробностей. Однако страница Detail не может принять данные, потому что строка, отправленная на странице входа, имеет нулевое значение на подробной странице.Как передавать данные из активности в другую деятельность на Android

Это мой Логин Код страницы:

public class MainActivity extends AppCompatActivity { 

EditText editText, editText1; 
Button button; 
int success = 0; 
ProgressDialog progressDialog; 
JSONObject jsonObject; 
HTTPURLConnection service; 
String strname ="", strpass=""; 
String response; 
String path = "http://sumbanggagasan.890m.com/select2.php"; 
Intent intent; 
DetailGagasanku detailGagasanku; 

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

    editText = (EditText) findViewById(R.id.nik); 
    editText1 = (EditText) findViewById(R.id.pass); 
    button = (Button) findViewById(R.id.signin); 

    service = new HTTPURLConnection(); 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (!editText.getText().toString().equals("") && !editText1.getText().toString().equals("")){ 
       strname = editText.getText().toString(); 
       strpass = editText1.getText().toString(); 
       response = null; 
       new PostDataTOServer().execute(); 
      } else{ 
       Toast.makeText(getApplicationContext(), "Please Enter all fields", Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 
} 

private class PostDataTOServer extends AsyncTask<Void, Void, Void> { 
    //Create hashmap Object to send parameters to web service 
    HashMap<String, String> postDataParams; 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 

     progressDialog = new ProgressDialog(MainActivity.this); 
     progressDialog.setMessage("Please wait..."); 
     progressDialog.setCancelable(false); 
     progressDialog.show(); 
    } 
    @Override 
    protected Void doInBackground(Void... arg0) { 
     postDataParams=new HashMap<String, String>(); 
     postDataParams.put("NIK", strname); 
     postDataParams.put("pass", strpass); 
     //Call ServerData() method to call webservice and store result in response 
     response= service.ServerData(path,postDataParams); 
     try { 
      System.out.println(response + "menu"); 
      jsonObject = new JSONObject(response); 
      //Get Values from JSONobject 
      System.out.println("success=" + jsonObject.get("successs")); 
      //success = jsonObject.getInt("success"); 
      success = Integer.parseInt(jsonObject.getString("successs").trim()); 
      System.out.println("Do in"); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 
     System.out.println("Post 1"); 
     System.out.println(strname); 
     if (progressDialog.isShowing()) { 
      System.out.println("Post 2"); 
      System.out.println(strpass); 
      progressDialog.dismiss(); 
     } 
     if(success==1) { 
      //Toast.makeText(getApplicationContext(), "Berhasil", Toast.LENGTH_LONG).show(); 
      Intent intent; 
      Bundle b; 
      b = new Bundle(); 
      b.putString("username", strname); 
      intent = new Intent(getApplicationContext(), LandingPage.class); 
      intent.putExtras(b); 
      startActivity(intent); 
     } else{ 
      Toast.makeText(getApplicationContext(), "Login gagal", Toast.LENGTH_LONG).show(); 
     } 

    } 
} 

И это мой детали код:

public class DetailGagasanku extends AppCompatActivity { 
    TextView judul, manfaat; 
    Bundle bundle; 

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

    judul = (TextView)findViewById(R.id.textJudul); 
    manfaat = (TextView) findViewById(R.id.textManfaat); 

    bundle = getIntent().getExtras(); 

    judul.setText(bundle.getString("judul_gagasan")); 

    if (bundle != null) { 
     if(bundle.containsKey("username")) 
     { 
      String s = bundle.getString("username"); 
      manfaat.setText(s); 
     } 
     else 
     { 
      System.out.println("not send"); 
     } 
    } 
} 
} 

Я хочу спросить, почему это имя пользователя имеет нулевое значение. Для вашей информации переменная «judul_gagasan» может получать значение от другого действия. Я отправляю его из My Adapter.

это мой код адаптера:

public class GagasanAdapter extends RecyclerView.Adapter<GagasanAdapter.GagasanHolder> { 

List<String> gagasanList = new ArrayList<>(); 

public GagasanAdapter(List<String> gagasanList) { 
    this.gagasanList = gagasanList; 
    Log.v("gagasanSize", "" + gagasanList.size()); 
} 

@Override 
public GagasanHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gagasan, parent, false); 
    return new GagasanHolder(v); 
} 

@Override 
public void onBindViewHolder(final GagasanHolder holder, final int position) { 

    Log.v("Gagasan[" + position + "]", gagasanList.get(position)); 
    String item = gagasanList.get(position); 
    holder.judulGagasan.setText(item); 

    holder.judulGagasan.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Context context = v.getContext(); 
      Intent intent = new Intent(context, DetailGagasanku.class); 
      intent.putExtra("judul_gagasan", holder.judulGagasan.getText().toString()); 
      context.startActivity(intent); 
     } 
    }); 
} 

@Override 
public int getItemCount() { 
    return gagasanList.size(); 
} 

public class GagasanHolder extends RecyclerView.ViewHolder{ 

    TextView judulGagasan; 

    public GagasanHolder(View itemView) { 
     super(itemView); 
     judulGagasan = (TextView) itemView.findViewById(R.id.tvListGagasan); 
    } 
} 
} 

ответ

0

Проходите «имя пользователя» в Bundle для LandingPage деятельности, так что вы не можете получить доступ в DetailGagasanku деятельности.

Таким образом, чтобы получить доступ к «имени пользователя» в разделе «Детализация», перейдите по имени пользователя из адаптера.

Смежные вопросы