0

我搜索了答案,但找不到。
问题:
根据选定的微调器项目,应用程序应该显示不同的图像。
此刻我无法让它工作。
Url 的工作方式如下:“my.site.com/images/”imc_met “.png”
是 imc_met 是文件名。
我无法让它工作。

顺便说一句,应用程序还没有完成

package example.myapplication;

    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URI;
    import java.net.URISyntaxException;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.List;
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.Spinner;


public class itemsActivity extends Activity {

private Spinner spinner1, spinner2;
private Button btnSubmit;
private Bitmap image;
private ImageView imageView;
private String imc_met, imc;

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

    addItemsOnSpinner2();
    addListenerOnButton();
    addListenerOnSpinnerItemSelection();
}

// add items into spinner dynamically
public void addItemsOnSpinner2() {

    spinner2 = (Spinner) findViewById(R.id.spinner2);
    List<String> list = new ArrayList<String>();
    list.add("list 1");
    list.add("list 2");
    list.add("list 3");
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(dataAdapter);
}

public void addListenerOnSpinnerItemSelection() {
    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}

// get the selected dropdown list value
public void addListenerOnButton() {

    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner2 = (Spinner) findViewById(R.id.spinner2);
    btnSubmit = (Button) findViewById(R.id.btnSubmit);

    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                                   int arg2, long arg3) {
            if(spinner1.getSelectedItem()!=null){
                imc_met = spinner1.getSelectedItem().toString();

            }

        }



        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });

imageView = (ImageView)findViewById(R.id.ImageView01);
btnSubmit.setOnClickListener(new OnClickListener() {

    public void onClick(View v)  {
        URL url = null;
        try {
            url = new URL("my.site.com"); //here should the right link appear.
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        try {
            if (url != null) {
                image = BitmapFactory.decodeStream(url.openStream());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        imageView.setImageBitmap(image);
    }
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

编辑

请发布生成正确 URL 所需的全部代码。

4

4 回答 4

0

这里的问题似乎是您返回的列表值中包含空格,这些空格在 URL 中是不允许的。尝试没有空格的东西...

编辑:-好的..你没有设置和设置OnItemSelectedListener你的spinner2并且设置了2个不同的spinner1

public void addListenerOnSpinnerItemSelection() {
    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}

spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
于 2013-11-08T09:44:24.203 回答
0

您应该获取一个字符串对象,然后单击微调器项目,为其分配它的值,然后在URL 中使用它。

于 2013-11-08T09:48:29.647 回答
0

你打电话spinner1.setOnItemSelectedListener()两次!第一次(应该获取项目的值)被第二次(即CustomOnItemSelectedListener)覆盖。因此,不会执行第一个侦听器。

去除那个spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());

(当您使用 时setOnXxxListener(),只会使用最后一次调用)。

于 2013-11-08T09:49:37.450 回答
0

您已在 spinner2 上设置数据并在 spiner1 上添加了侦听器。spiner1 没有数据。在 spiner2 上添加监听器并再次运行它

于 2013-11-08T10:01:37.310 回答