私のアプリには、Facebookに写真をアップロードするボタンがあります。このボタンを押すと、警告ボックスが表示されてユーザーのキャプションが表示され、写真がアップロードされます。写真が Facebook にアップロードされている間 (キャプションが与えられて押された後)、[戻る] ボタンを押すとOK
、アクティビティが再び表示されますが、今回は写真を再度アップロードしようとすると、警告ボックスが表示されません (ただし、ボタンの場所をOK
押すと画像がアップロードされるため、非表示モードになっています。
//Listener to button to upload to facebook
class ButtonListener3 implements View.OnClickListener{
@Override
public void onClick(View v) {
Pic.this.Commentbox();
}
}
public void Commentbox(){
value="";
alert1 = new AlertDialog.Builder(this);
alert1.setTitle("Write caption");
// Set an EditText view to get user input
final EditText input = new EditText(this);
alert1.setView(input);
alert1.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
value = input.getText().toString();
Pic.this.fb();
}
});
alert1.setNegativeButton("No, thanks", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
value="";
Pic.this.fb();
}
});
alert1.show();
}
public void fb(){
final Facebook facebook=new Facebook(ID);
facebook.authorize(Pic.this, new String[] { "publish_stream" },
new DialogListener() {
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
}
@Override
public void onError(DialogError dialogError) {
// TODO Auto-generated method stub
}
@Override
public void onComplete(Bundle values) {
postToWall(values.getString(Facebook.TOKEN));
}
private void postToWall(String accessToken) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] data = baos.toByteArray();
Bundle bundle = new Bundle();
bundle.putString(Facebook.TOKEN, accessToken);
bundle.putByteArray("facebookPictureData", data);
// The byte array is the data of a picture.
bundle.putByteArray("picture", getIntent().getExtras().getByteArray("data"));
bundle.putString("caption",value);
try {
facebook.request("me/photos", bundle, "POST");
Toast.makeText(getApplicationContext(),"Picture uploaded to your facebook account successfully",
Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException fileNotFoundException) {
Toast.makeText(getApplicationContext(),"Picture upload failed, try again",
Toast.LENGTH_SHORT).show();
} catch (MalformedURLException malformedURLException) {
Toast.makeText(getApplicationContext(),"Picture upload failed, try again",
Toast.LENGTH_SHORT).show();
} catch (IOException ioException) {
Toast.makeText(getApplicationContext(),"Picture upload failed, try again",
Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
}
});
}