Я делаю приложение для Android. Я достиг своей цели с одним основным потоком нажатием кнопки !!! (показать изображение, сохраненное на SD в ImageView) Но мне нужно сделать это с многопоточностью, чтобы сэкономить время и потому, что я буду создавать другие потоки.
Проблема, когда я делаю это в новом потоке, появляется предупреждение, которое говорит мне:
"Только оригинальная нить, создавшая иерархию представлений, может касаться ее
просмотры ".
И изображение не открывается.
Вот этот код:
public class intsocketclient extends Activity implements OnClickListener{
public ImageView imagen;
private Button connectPhones;
private Handler conectarhandler = null;
private Runnable conectarunner = null;
public boolean condicion = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imagen = (ImageView) findViewById(R.id.imagen);
connectPhones = (Button) findViewById(R.id.connect_phones);
connectPhones.setOnClickListener(this);
conectarhandler = new Handler();
conectarunner = new Runnable() {
public void run() {
conectayenvia();
conectarhandler.post(this);
}
};
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub.
if(v==connectPhones) {
new Thread (conectarunner).start();
}
}
public void conectayenvia () {
if (condicion){
condicion = false;
Bitmap bMap = BitmapFactory.decodeFile("/sdcard/recibido.jpg");
imagen.setImageBitmap(bMap);
}
}
}
Но мне действительно нужно, чтобы это было так.
Можно ли взять основной макет (исходный файл "main.xml") и что-то вроде "добавить" поверх него другой основной файл ("threadmain.xml", который содержит только изображение), но также с возможностью нажатия кнопок и других вещей первого оригинального макета main.xml ????????