2016-09-05 8 views
1

ListViewの行のボタンを使用して、単一の行を作ることができます。データベースからのスパニング可能なデータですが、クリックすると文字列全体が返されますMyAdapter Classこのenter image description hereにリストenter image description here
の特定の行からの結果を得るが、機能がスパンや言葉よりも、全体sentenseを返すクリックすることができListview
クリックすると全体の文字列を返すスパニング可能な文字列

public View getView(int i, View view, ViewGroup viewGroup) { 
    Realm realm=Realm.getDefaultInstance(); 
    Word toEdit = realm.where(Word.class) 
      .equalTo("id", 10).findFirst(); 
    int id_to_seperate=toEdit.getLang(); 

    LayoutInflater inflater= (LayoutInflater) Main.context.getSystemService(Main.context.LAYOUT_INFLATER_SERVICE); 
    View row= inflater.inflate(R.layout.layout,viewGroup,false); 
    TextView word= (TextView) row.findViewById(R.id.word_name); 
    TextView meaning= (TextView) row.findViewById(R.id.word_define); 
    Word temp=list.get(i); 
    int idz=temp.getId(); 
    word.setText(temp.getWord()); 
    if(id_to_seperate==idz){ 
     String span[] = temp.getMeaning().substring(1).split(" ") ; 
     SpannableString ss = new SpannableString(temp.getMeaning().substring(1)); 
     ClickableSpan spans[] = new ClickableSpan[span.length]; 
     for(int spanCount = 0 ; spanCount < span.length ; spanCount++){ 
      spans[spanCount] = new ClickableSpan() { 
       @Override 
       public void onClick(View textView) { 

        TextView v = (TextView)textView ; 
        String text = v.getText().toString() ; 

        Log.d("View" , text); 
       } 
      }; 
     } 

     int start = 0 ; 
     int end =0; 
     try { 
      for(int spanCount = 0 ; spanCount <span.length ; spanCount++){ 
       if(spanCount==0) { 
        end += span[spanCount].length(); 
       }else{ 

        end += span[spanCount].length()+1; 
       } 
       ss.setSpan(spans[spanCount], start, end , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
       start += span[spanCount].length()+1; 

      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     meaning.setText(ss); 
     meaning.setMovementMethod(LinkMovementMethod.getInstance()); 

    }else { 
     meaning.setText(temp.getMeaning().substring(1)); 
    } 
    return row; 
} 

午前にデータベースから値を入力しています、私は、もし感謝するでしょう誰でも私が何をしたのか教えてください
よろしくここ

答えて

1

はTextView.getText(

TextView v = (TextView)textView ; 
String text = v.getText().toString() ; 

あなたのコードで間違っている)。のtoString()フルテキストを返すです。あなたが特定の ClickableSpanを取得したい場合は、その後 ClickableSpan

public class SpecialClickableSpan extends ClickableSpan { 

    String text; 

    public SpecialClickableSpan(String text){ 
     super(); 
     this.text = text; 
    } 

    @Override 
    public void onClick(View widget) { 
     Log.d(TAG, "onClick [" + text + "]"); 
    } 
} 

下に使用

for(int spanCount = 0 ; spanCount < span.length ; spanCount++){ 
    spans[spanCount] = new SpecialClickableSpan (span[spanCount ]); 
} 
+0

感謝ロット男と

for(int spanCount = 0 ; spanCount < span.length ; spanCount++){ spans[spanCount] = new ClickableSpan() { @Override public void onClick(View textView) { TextView v = (TextView)textView ; String text = v.getText().toString() ; Log.d("View" , text); } }; } 

を交換してください! – phpdroid

関連する問題