2015-11-01 63 views
-2

我試圖創建一個字符串,其內容依賴於在活動中單擊的圖像。單擊ImageView時,我無法將值附加到字符串

因此,如果單擊Image1,給定的單詞將附加到該字符串,如果單擊Image2,則會向該字符串附加另一個不同的單詞,依此類推。

然後,一旦所有(或某些)ImageView被點擊,我想使用trhis字符串作爲文本通過SHARE INTENT發送。

到目前爲止很好:所有圖像已被識別,按鈕相同,append方法工作正常,但當我嘗試通過電子郵件或SMS共享字符串時,文本絕對爲空。

任何想法爲什麼?

這是我的MainActivity

public class MainActivity extends AppCompatActivity { 

Button button; 
String result =""; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    button = (Button) findViewById(R.id.button); 
    final int value1 = 300; 
    final double value2 = 3.14; 
    final short value3 = 5; 
    final char value4 = 'A'; 


    // Create StringBuilder and add four values to it. 
    final StringBuilder builder = new StringBuilder(); 


    ImageView imageview = (ImageView) findViewById(R.id.imageView); 
    imageview.setOnClickListener(new View.OnClickListener() { 

     @Override 

     public void onClick(View v) { 
      builder.append(value1).append("\n"); 
     } 
    }); 

    ImageView imageview2 = (ImageView) findViewById(R.id.imageView2); 
    imageview2.setOnClickListener(new View.OnClickListener() { 

     @Override 

     public void onClick(View v) { 
      builder.append(value2).append("\n"); 
     } 
    }); 

    result = builder.toString(); 


    Button button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      //create the send intent 
      Intent shareIntent = 
        new Intent(Intent.ACTION_SEND); 

      shareIntent.setType("text/plain"); 

      shareIntent.putExtra(Intent.EXTRA_SUBJECT, 
        "Insert Subject Here"); 

      String shareMessage = result; 

      shareIntent.putExtra(Intent.EXTRA_TEXT, 
        shareMessage); 

      startActivity(Intent.createChooser(shareIntent, "Share via")); 
     } 
    }); 
    } 
} 

,你可以看到,該文本將被共享是字符串「結果」,這應該由附加到它的文字。

在我的佈局中,我只有兩個帶有按鈕的ImageView。 (clickable = true)

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginTop="88dp" 
    android:clickable="true" 
    android:background="@mipmap/ic_launcher" 
    android:contextClickable="true" /> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView2" 
    android:clickable="true" 
    android:background="@mipmap/ic_launcher" 
    android:layout_alignTop="@+id/imageView" 
    android:layout_alignRight="@+id/button" 
    android:layout_alignEnd="@+id/button" 
    android:contextClickable="true" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Share" 
    android:id="@+id/button" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:clickable="true" 
    android:contextClickable="true" /> 


</RelativeLayout> 

任何想法?

+0

昨天你問了同樣的問題(http://stackoverflow.com/questions/33453488/how-to-append-text-with-onclick-method),爲什麼你再問一次? – Mohamed

+0

嗨穆罕默德謝謝你的問候!昨天我從Saeed得到了一半答案,又名一個預設文本被附加到一個字符串。在你的情況下,它使用了TextView內容,這不是我的情況。此外,我需要點擊幾個項目並追加。 現在,我設法追加只有一個預設值(而不是TextView的內容),但我無法獲得共享文本中的字符串! – MDR

回答

0

StringBuffer獲得附加值。移動:

result = builder.toString(); 

裏面onClick按鈕。

問題發生是因爲builder.toString()行被調用時onCreate方法被調用,並且StringBuffer中的值在點擊ImageView的時候被附加。

+0

你是天才,謝謝!最後一個問題:當我點擊圖片時,我想要出現一個勾號,任何想法? – MDR

+0

@MDR:爲什麼不改變ImageView點擊或好,如果使用自定義複選框 –

+0

嘟m咕嚕,你會從.xml佈局或activity.class嗎? – MDR