2012-04-30 19 views
0

申し訳ありませんが、簡単な要約です。このアプリはlistView(文字列配列によって設定されています)で開きます。リスト内の項目の1つをタップすると、タップした最初の項目に関連付けられている別のlistView(文字列配列によって読み込まれます)に移動します。 2番目のlistViewでは、アイテムをタップして、別の文字列配列の関連項目を含むtextViewを表示したいと思います。これまでのところ、最初の2つのlistViewが動作していますが、textViewを動作させることはできません。私は2日間これ以上頭を叩き、非常に不満を感じています。助けてもらえますか?ここAndroidのListViewで選択された文字列配列の文字列でTextViewを設定する

そして、私のgetIntentと私はのsetTextすべき場所は次のとおりです。

は、ここに私の文字列xmlファイルです。今まで試みたことのすべてが悲惨に失敗したため、空白にしました。選択された配列から適切な文字列を取得する方法がわかりません。私は問題がnull例外エラーであったものを見つけ

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

コードを少し変更しました。上記を確認してください。私は2つのことをしました。まず、選択した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", 0);

+0

Eclipseは '0'を削除するとエラーが表示されました。デフォルト値が必要です。 – iamluisg

0

mPosition = i.getIntExtra("listposition"); だから、あなただけのリストビューに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); 

それ以外の場合は、どのようなログキャッチエラーで失敗しているのかを投稿してください。

+0

コメントをいただきありがとうございますが、私は実際にはsubTopics配列から1つの文字列を取得し、それをTextViewに入れたいと考えました。例えば、上記の文字列xmlファイルを見ると、イディオム配列の 'Cash Cow'をクリックすると、 'Cash Cow is a blah blah blah'と表示されます。 – iamluisg

0

TextViewには何を表示しますか? 2つのサブ項目は新しい行で区切られていますか?その場合は、mLanguagePoint.setText()mLanguagePoint.setText(subTopics[0] + "\n" + subTopics[1])

+0

実際、関連する配列から関連する文字列を表示したかったのです。たとえば、私がインクルードした文字列xmlファイルを見ると、イディオム配列の 'Cash Cow'をクリックすると、テキストビューに 'Cash Cow is a blah blah blah'と表示されます。 – iamluisg

+0

スタックトレースの残りの部分をチェックしてください。 "Caused by:"という行があり、次に短いスタックトレースが続きます。これは例外の原因を明らかにする可能性があります。 – Magicode

+0

はい、あります。原因:java.lang.NullPointException何がnullであるのか分かりませんが、私のコードでnullになることはありません。 – iamluisg

0

に変更してからmLanguagePointを初期化してください。

のようなものが2番目のリストビューにuはlogcatにエラーを手に入れた 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.DetailLangua gePoints}:java.lang.NullPointerExceptionこのエラーは、 'mLanguagePoint.setText(subTopics [position]);を含まないことと関係がありますか?私のListViewのonItemClickメソッドで?奇妙なことは、それがクラッシュするテキストビューに到達しようとすると、それはlistViewを表示するということです。 – iamluisg

関連する問題