我搜索了一个答案,但无法找到答案。
问题:
根据所选的微调项目,应用程序应显示不同的图像
此刻我无法让它发挥作用
网址的工作方式如下:" 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;
}
}
修改
请发布用于制作正确网址的完整代码。
答案 0 :(得分:0)
这里的问题似乎是返回的列表值包含空格中的空格,这些空格在URL中是不允许的。尝试没有空格的内容......
编辑: - 确定..您尚未在OnItemSelectedListener
上设置并spinner2
并在spinner1
上设置了2个不同的<{1}}
public void addListenerOnSpinnerItemSelection() {
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}
和
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
答案 1 :(得分:0)
你应该拿一个字符串对象并点击微调项目,为它指定它的值,然后在 URL中使用它。
答案 2 :(得分:0)
您拨打spinner1.setOnItemSelectedListener()
两次!第一次(应该获得项目的值)将被第二次覆盖(即CustomOnItemSelectedListener
)。因此,第一个监听器将不会被执行。
删除spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
(使用setOnXxxListener()
时,只会使用最后一次通话。)
答案 3 :(得分:0)
您已在spinner2上设置数据并在spiner1上添加了侦听器。 spiner1没有数据。在spiner2上添加侦听器并再次运行