2012-04-30 3 views
0

좋아, 빠른 요약. 응용 프로그램은 listView (문자열 배열로 채워짐)로 열리 며 목록의 항목 중 하나를 살짝 두드리면 탭 한 첫 번째 항목과 관련된 항목이있는 다른 listView (문자열 배열로 채워짐)로 이동합니다. 두 번째 listView에서 항목을 살짝 눌러 다른 문자열 배열의 관련 항목이있는 textView를 표시하고 싶습니다. 지금까지 처음 두 listViews 작동하지만 textView 작동하도록 가져올 수 없습니다. 나는 이틀 동안 내 머리를 두드리고 아주 좌절하고있다. 도와 주실 수 있겠습니까?! 여기안드로이드의 ListView에서 선택한 문자열 배열의 문자열로 TextView를 설정하십시오.

<string-array name="topics"> 
<item>Idioms</item> 
<item>Travel</item> 
<item>Small Talk</item> 
<item>Tips</item> 
<item>App Data</item> 
</string-array> 

<string-array name="idioms"> 
    <item>Cash Chow</item> 
    <item>No Spring chicken</item> 
</string-array> 

<string-array name="travel"> 
    <item>Asking for Change</item> 
    <item>Bus and Train Schedule</item> 
</string-array> 

<string-array name="idioms_description"> 
    <item>A cash cow is a blah blah blah</item> 
    <item>No spring chicken means blah blah blah</item> 
</string-array> 

<string-array name="travel_description"> 
    <item>This is a test for Asking for change</item> 
    <item>This is a test for Bus and train schedules</item> 
</string-array> 

그리고 내 getIntent 내가의 setText해야 장소입니다 :

여기 내 문자열 XML 파일입니다. 내가 지금까지 시도한 모든 것이 비참하게 실패했기 때문에 나는 그것을 공란으로 남겼다. 나는 선택된 배열로부터 적절한 문자열을 얻는 방법을 모른다. 나는 문제가 널 예외 오류가 무엇인지 발견

public class DetailLanguagePoints extends Activity{ 

private int position; 
private TextView mLanguagePoint; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.detail_view); 
     mLanguagePoint = (TextView) findViewById(R.detail.languagepoints); 

     Bundle extras = getIntent().getExtras(); 

     //int[] arrayIds = new int[]{R.array.idioms, R.array.travel}; 
     position = extras.getInt("listposition"); 

     int[] stringarrayIds = new int[]{R.array.idioms_description, R.array.travel_description}; 


     String[] subTopics = getResources().getStringArray(stringarrayIds[position]); 

     String description = subTopics[position]; 

     final String TAG = "MyActivity"; 
     Log.d(TAG,description); 

     mLanguagePoint.setText(description);  

    } 

} 

, 나는 setcontentView()findViewById()를 호출하지 않았다. 나는 그것을했고 그것이 문제를 해결했다, 그것은 지금 일하고있다!! 제안을 주신 모든 분들께 감사드립니다 !!

+0

를 추가하려고? – Manikandan

+0

코드를 조금 변경했습니다. 위의 내용을 확인하십시오. 두 가지 작업을 수행했습니다. 먼저 선택한 listView 항목의 문자열을 LogCat에 인쇄하고 적절한 문자열을 인쇄했습니다. 그러나 listView에서 항목을 클릭하면 여전히 충돌이 발생합니다. 이것은 LogCat E/AndroidRuntime (281)에있는 오류입니다. java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {com.oiapps.everydayenglish/com.oiapps.everydayenglish.DetailLanguagePoints} : java.lang.NullPointerException 아무 생각 나지 않습니다. 그게 원인 일까? – iamluisg

답변

0

사용이 코드 mPosition = i.getIntExtra("listposition"); 대신 mPosition = i.getIntExtra("listposition", 0);

+0

Eclipse에서 '0'을 제거하면 오류가 발생합니다. 기본 값을 원합니다. – iamluisg

0

그래서 당신은 단지의 ListView에 subTopics을 설정할의 ?

ListView listView = (ListView) findViewById(R.id.listView1); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, subTopics); 
listView.setAdapter(adapter); 

그렇지 않으면 logcat 오류로 어떻게 실패하고 있는지 게시하십시오.

+0

코멘트 주셔서 감사하지만 실제로는 subTopics 배열에서 하나의 문자열을 가져 와서 TextView에 넣기를 원했습니다. 예를 들어 위에서 포함 된 문자열 xml 파일을 보면 관용구 배열에서 'Cash Cow'를 클릭하면 텍스트보기에서 'Cash Cow is a blah blah blah'라고 표시하려고합니다. – iamluisg

0

TextView에 무엇을 표시 하시겠습니까? 두 개의 하위 항목은 줄 바꿈으로 구분됩니까? 그렇다면 바로 변경하십시오 mLanguagePoint.setText()mLanguagePoint.setText(subTopics[0] + "\n" + subTopics[1])

+0

사실, 관련 배열에서 연관된 문자열을 표시하려고합니다. 예를 들어 필자가 포함 된 문자열 xml 파일을 보면, 관용구 배열에서 'Cash Cow'를 클릭하면 텍스트보기에 '현금 암소가 표시됩니다.'라고 표시됩니다. – iamluisg

+0

나머지 스택 추적을 확인하십시오. "Caused by :"라는 줄이있을 수 있으며 그 다음에 또 다른 짧은 스택 추적이 표시 될 수 있습니다. 이것은 예외의 원인을 밝힐 수 있습니다. – Magicode

+0

예, 있습니다, 원인 : java.lang.NullPointException null이 될 수 있습니다, 내 코드에서 아무것도 표시되지 않습니다. – iamluisg

0

으로 변경하고 mLanguagePoint를 먼저 초기화하십시오.

같은 그런 다음 두 번째 목록보기에 유 로그 캣에서 오류셨어요 onItemClickListener()

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


mLanguagePoint.setText(subTopics[position]); 
} 
+0

위의 편집 된 코드로 원래 질문을 수정했지만 LogCat E/AndroidRuntime (281)에서 여전히 오류가 발생합니다. java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {com.oiapps.everydayenglish/com.oiapps. Everydayenglish.DetailLanga gePoints} : java.lang.NullPointerException이 오류는 'mLanguagePoint.setText (subTopics [position]);을 포함하지 않는 것과 아무 관련이 없습니다. 내 ListView의 onItemClick 메서드에서? 이상한 점은 listView가 올바르게 표시된다는 것인데, 텍스트 뷰에 충돌하려고 할 때 충돌이 발생합니다. – iamluisg

관련 문제