이 정보를 얻는 방법에 대한 정보가 필요합니다.
개인적으로, 나는 당신이 미래에 문제없이 그것을 개선 할 수있는 SQLite는 DB를 선호합니다. 예 : 다음 Information activity
소개
레이아웃에이 활동이 통과해야 할 텍스트를 추가 할 것입니다 TextView
이 있습니다.
Intent intent = getIntents();
String stringToDisplay = null;
if (intent != null)
{
stringToDisplay = intent.getStringExtra (EXTRA_STRING_CONTENT);
}
getIntents
에 의해 그것에 생성되고 전달되는 Intent
개체를 얻을 것이다 :
우리가 이런 식으로 뭔가를 추가 우리는 우리의 onCreate
에, Intents
를 사용하여 표시 할 문자열을 전달 귀하의 경우는 동적으로 만들려면 우리의 주요 활동. getStringExtra
는 안드로이드라는 간단한 방법입니다 : 내가 함께 저장되는 문자열을 얻으려면 키 EXTRA_STRING_CONTENT
EXTRA_STRING_CONTENT
확실히 우리가 어떤을하지 않는 우리가 만드는 데 사용되는 필드 (그것은 Map
같은 뭔가) 우리는 우리가 (MainActivity에서)를 통과 할 때 같은 이름을 사용할 필요가 있기 때문에, 데이터를 전달에서의 오류와 우리가 (InformationActivity)
public static final String EXTRA_STRING_CONTENT = "EXTRA_STRING_CONTENT";
확인을 읽을 때, 우리는 수행됩니다.
우리는 지금 우리의 텍스트 뷰에 문자열을 설정해야합니다
TextView infoTextView = (TextView) findViewById(R.id.infotextview);
infoTextView.setText (stringToDisplay);
은 그만.
이제 우리는 나는이 두 줄에 초점을 맞출 것이다, 우리의 MainActivity 코드에 가서 우리의 addListenerOnButton
final Context context = this;
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(context, MainActivity2.class);
startActivity(intent);
}
});
음을 수정해야
우리는 여기에 표시 할 문자열을 전달해야 Intent intent = new Intent(context, MainActivity2.class);
startActivity(intent);
방법 ?
우리가 getStringExtra
을 사용하기 전에 지금은 유사한 (참고 :이 같은 의도 클래스의)입니다하지만 지금은 우리가 putExtra
방법을 필요로 우리는 그래서 우리는 단지
String stringToDisplay = "Hello world";
intent.putExtra(InformativeActivity.EXTRA_STRING_CONTENT, stringToDisplay);
을 할 필요를 위해, 컴파일러가 올바른 과부하를 선택합니다 (참고 : InformativeActivity.EXTRA_STRING_CONTENT)
현재 코드에서 우리는 항상 Hello world
을 두 번째 활동으로 보냈지 만 버튼을 기반으로 한 동적 인 것이 필요합니다 ... 이제는 데이터를 얻는 방법에 따라 다릅니다.
문자열 배열 인 경우 문자열 배열을 배열에 저장 한 다음 단추를 기반으로 할 수 있습니다 (첫 번째 보낸 문자열 인덱스 0 인 경우 등).
예 :
int buttonId = 1; // it will be a general variable, if it's button 1 it will be 0, if 2-1 etc.
String[] informations = getResources().getStringArray(R.array.infos); // in a real code you should move it outside the `onClick` code and put it in a static final field.
intent.putExtra(InformativeActivity.EXTRA_STRING_CONTENT, informations[buttonId]); // it's the same of above
당신이 당신의 필요에 따라 코드를 적용하는 방법을 알 수 개념을 이해하면
. 더 많은 정보가 필요하거나 보내려는 것이 두 번째 활동 (예 : sqlite 데이터베이스에서 행의 ID와 행을 읽을 수있는 예 : 이 ID에 기초하여 제 2 활동)을 변경할 수
어떤 것들은 :
- 피가 MainActivity2를 호출, 그것은, 당신은 컨텍스트를 저장 정말 필요가 없습니다
- 이름으로 그렇게 도움이되지이다 당신은 단지 MainActivity를 사용할 수 있습니다.이
addListenerOnButton
좀 더 일반적인 것으로 만드십시오. 예를 들어 Button을 인수로 사용하고 Listener를 설정하십시오. XML에서 읽지 마십시오. 모든 버튼에 180 개의 메소드가 있습니다.
디자인 활동을 180 개 다시 생각해 볼 것을 제안합니까 ?? – Raghunandan
@Raghunandan "180 가지 활동을 재검토"한다는 것은 무엇을 의미합니까? 그래서 기본적으로 내 모든 애플 리케이션을 변경해야합니다! 아니 실 거예요! –
제발 좀 더 설명해주세요 @Raghunandan –