2014-07-24 3 views
0

간단 할 수도 있지만 여전히 문제를 찾을 수는 없습니다.Android에서 하나의 활동에서 다른 활동으로 문자열을 보냈습니다.

한 활동에서 다른 활동으로 문자열을 보냈지 만 그 내용은 전혀 표시되지 않습니다. 이미 여러 번 확인해 봤는데 코드에 문제가 없다고 생각합니다.

여기 내 첫 자바 코드의 (FoodFilter.class)

listView.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      // getting values from selected ListItem 
      String name = ((TextView) view.findViewById(R.id.filter_type)) 
        .getText().toString(); 
      String cost = ((TextView) view.findViewById(R.id.item_list)) 
        .getText().toString(); 
      String description = ((TextView) view.findViewById(R.id.category_name)) 
        .getText().toString(); 

      // Starting single contact activity 
      Intent in = new Intent(getApplicationContext(), 
        FoodFilterDetail.class); 
      in.putExtra(TAG_NAME, name); 
      in.putExtra(TAG_EMAIL, cost); 
      in.putExtra(TAG_PHONE_MOBILE, description); 
      startActivity(in); 

     } 
    }); 

이것은 FoodFilterDetail.class

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

    TextView txtProduct = (TextView) findViewById(R.id.filterItemList); 

    Intent i = getIntent(); 
    // getting attached intent data 
    String product = i.getStringExtra("TAG_NAME"); 
    // displaying selected product name 
    txtProduct.setText(product); 

} 

입니다 여기 내 XML의

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@android:color/transparent" 
    android:layout_marginLeft="7dip" 
    android:layout_marginRight="7dip" > 

    <TextView 
     android:id="@+id/filterItemList" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="15dip" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:background="@android:color/transparent" 
     android:text="Sort By" 
     android:textSize="20sp" 
     android:textStyle="bold" /> 

</RelativeLayout> 

json parse에서 FoodFilter.class에 대한 데이터를 얻었지만 제대로 작동합니다. ListView에 모든 데이터를 표시 할 수 있지만 문자열을 FoodFilterDetail.class으로 보내면 아무 것도 표시되지 않으며 오류 또는 경고가 내 코드에 없습니다.

누구든지 해결할 수 있습니까? 나는 하루 종일 문제를 조사해왔다.

감사

답변

1

의 이전은 FoodFilter.java에

public static final String TAG_NAME = "name"; 

사용을 하나 개의 변수를 만들

in.putExtra(TAG_NAME, name); 

및 FoodFilterDetail에서 FoodFilter.java

이 .j AVA는

String product = i.getStringExtra(FoodFilter.TAG_NAME); 

는 동일한 작업을 수행 다른 모든 변수 난 당신이 첫번째 활동에 같이 TAG_NAME을 정의하는 것을 가정하고

+0

고마워요. 내 코드가 왜 작동하지 않는지 모르겠다. 왜냐하면 다른 클래스에 사용하기 때문에 코드가 완벽하게 작동하기 때문이다. 다시 한번 감사드립니다. – Matthew

+0

가장 환영 받고 행복하게 도와 드리겠습니다. :) – MilapTank

2

사용 i.getStringExtra(TAG_NAME); 대신 i.getStringExtra("TAG_NAME");

+0

TAG_NAME 수 없어 – Matthew

+0

@Matthew :'FoodFilter' 클래스에서와 같은 것을 사용하십시오. – fabian

+0

다른 활동에서 TAG_NAME을 (를) 선언 했으니 여기에서 데칼레이션 해주세요. 도움이된다면 제 대답을 수락하십시오. –

0

:

public static final String TAG_NAME = "some_random_key"; 

그런 다음의 키로 설정하는 Intent은 다음과 같습니다.

in.putExtra(TAG_NAME, name); 

이 같은 액세스하려고하는 두 번째 활동

String product = i.getStringExtra("TAG_NAME"); 

키 때문에 작동하지 않습니다 "TAG_NAME"하지만 "some_random_key" 없습니다.

public static final String TAG_NAME = "some_random_key"; 

그리고 다음과 같은 문자열을 액세스 : 그래서 당신은뿐만 아니라 첫 번째 활동에 그랬던 것처럼 두 번째 활동에 TAG_NAME를 정의 할 필요가 두 번째 활동에 액세스하려면

String product = i.getStringExtra(TAG_NAME); 
관련 문제