0

我在显示图片时遇到问题,尝试使用onclick方法,gettext在edittext上输入文本后仍然无法显示图片。

这是我的代码

活动第一代码java

public class MainActivity extends Activity {
EditText et;
private Button tombol;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tombol=(Button)findViewById(R.id.button1);
    tombol.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, MainActivity2.class);
        intent.putExtra("URL", "http://epiece.hostingforfree.com/cam_1.jpg");
        startActivityForResult(intent, 0);

        }
        });
}

第二个活动java代码

public class MainActivity2 extends Activity {

EditText et;
ImageView iv;
public Button tombol;

 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main2);

 loadGambar();
 }

private void loadGambar(){

     try {  

    iv = (ImageView) findViewById(R.id.imageView1);
    et = (EditText) findViewById(R.id.editText1);
    tombol = (Button) findViewById(R.id.button1);

            URL url = new URL (et.getText().toString());
    InputStream is =  (InputStream) url.getContent();
    Drawable gambar = Drawable.createFromStream(is, "src");
    iv.setImageDrawable(gambar);
    is.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
 tombol=(Button)findViewById(R.id.button1);
 tombol.setOnClickListener(new OnClickListener() {

 @Override
 public void onClick(View view) {
     String string = getIntent().getExtras().getString("URL");
     Intent intent=new Intent();
     setResult(RESULT_OK, intent);
     finish();

 }
 });
 }
}

此代码没有任何错误,但图像仍然无法显示,请帮我修复它?

4

2 回答 2

0

1)你应该关心的第一件事是你不应该使用主线程从互联网加载图像,而应该使用asyncTask(doInBackground方法)从互联网获取图像,然后在onPostExecute中你可以将图像设置为你的imageView。

2)这里你的错误是你的edittext是空白的,这意味着你正在从意图中传递URL,但你没有在SecondActivity中得到它。你可以使用loadGamber()将url值设置为editText

et.setText(intent.getStringExtra("URL"));

我希望这可以帮助你..!!

于 2013-08-25T04:33:15.627 回答
0

可能这会有所帮助...

您在该代码中犯了两个错误..

1)您已经为 指定了按钮名称activity_mainactivity_main2相同的名称button1您需要为两个按钮提供单独的名称,如以下代码

activity_main

tombol=(Button)findViewById(R.id.button1);

 tombol.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, MainActivity2.class);
            intent.putExtra("URL", "http://epiece.hostingforfree.com/cam_1.jpg");
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);

            }
     });

activity_main2

tombo=(Button)findViewById(R.id.button2);   

2)并且您需要从主要活动中获取意图,例如不在onclick中的波纹管

    Intent i = getIntent();
    final string value = i.getExtras().getString("URL");
于 2013-08-25T04:33:30.087 回答