База ответов ИНТУИТ

Разработка приложений для Android 4.0

<<- Назад к вопросам

     // This method comes from an Activity class.      public void onClick(View v) {       new Thread(new Runnable () {        public void run() {        Bitmap b = loadImageFromNetwork("http://example.com/image.png");        mImageView.setImageBitmap(b);        }       }).start();      }        
Почему код не осуществляет ожидаемых действий?

(Отметьте один правильный вариант ответа.)

Варианты ответа
вместо loadImageFromNetwork() должно быть threadLoadFromNetwork()
mImageView не доступно внутри метода run()
инструменты UI доступны за пределами потока UI(Верный ответ)
аргумент View v в onClick() должен быть конечным
конструктор Thread не допускает Runnable в качестве аргумента
Похожие вопросы
     1: public class ProgressTestActivity extends Activity {     2:     3:   private Handler handler;     4:   private ProgressBar progress;     5:     6:   @Override     7:   public void onCreate{Bundle savedInstanceState) {     8:   super.onCreate(savedInstanceState);     9:   setContentView(R.layout.main);     10:  progress = (ProgressBar)findViewById(R.id.progressBar);     11:  handler = new Handler();     12:  }     13:     14:  public void startProgress(View view) {     15:  Runnable runnable = new Runnable() {     16:   @Override     17:   public void run() {     18:    for (int i = 0; i <= 10; i++) {     19:     final int value = i;     20:     try {     21:      Thread.sleep(2000);     22:     } catch {InterruptedException e) { }     23:     handler.post(new Runnable() {     24:      @Override     25:      public void XXX() {     26:       progress.setProgress(value);     27:      }     28:     });     29:    }     30:   }     31:  };     32:      new Thread(runnable).start();     33:     }     34:  }        
Какой метод заменит XXX в 25-й строке, для того чтобы progress bar периодически обновлялась?
     MyActivity.java      ---------------      package com.example.app;           import android.app.Activity;      import android.os.Bundle;           public class ExampleActivity extends Activity {            @Override       public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(new MyDrawView(this));           }            }           MyDrawView.java      ---------------      package com.example.all;           import android.content.Context;      import android.graphics.Canvas;      import android.graphics.Color;      import android.graphics.Paint;      import android.view.View;           public class MyDrawView extends View {              public MyDrawView(Context context) {         super(context);       }              protected void onDrawView(Canvas canvas) {         Paint paint = new Paint();         paint.setColor(Color.GREEN);         paint.setTextSize(25);         paint.setAntiAlias(true);         canvas.drawText("Hello World", 5, 30, paint);       }             }     
Построение и развертывание приложения производятся правильно. Какие ошибки в коде приведут к тому, что текст НЕ будет отображаться полностью?
     public class MyActivity extends Activity implements OnClickListener {       @Override       public void onCreate(Bundle savedInstanceState) {       setContentView(R.layout.main);       }     }    
Какая проблема проиллюстрирована с помощью данного кода?
     public class MainActivity extends Activity {       @Override       public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedlnstanceState) ;       setContentView(R.layout.main);       getLoaderManager().initLoader(0, null, this);       }      @Override       public Loader<Cursor> onCreateLoader(int id, Bundle args) {       // Create and return a new Loader       }      }     
Как убедиться что onCreateLoader() запускается, когда нужен новый Loader?
     public class MainActivity extends Activity {       @Override       public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedlnstanceState) ;       setContentView(R.layout.main);       getLoaderManager().initLoader(0, null, this);       }      @Override       public Loader<Cursor> onCreateLoader(int id, Bundle args) {       // Create and return a new Loader       }      }     
Что надо добавить в исходный код, чтобы метод onCreateLoader выполнялся при создании нового объекта класса Loader?
     public class CustomerDBHelper extends SQLiteOpenHelper {      CustomerDBHelper(Context context) {        super(context, "CustomerDatabase", null, 1);       }           @Override      public void onCreate(SQLiteOatabase db) {        db.execSQL("CREATE TABLE customers (lastName TEXT);");       }     }    
Почему данный класс НЕ может быть скомпилирован?
     // onCreate() method from your searchable Activity class     @Override     public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       setContentView(R.layout.search);       Intent intent = getIntent();       if (Intent.ACTION_SEARCH.equals(intent.getAction())) {      String query = intent.getStringExtra(SearchManager.QUERY);       doMySearch(query);       }      }    
Как проверить, что действие запущено, когда пользователь выполняет поиск в виджете?
public class MyPhoneReceiver extends BroadcastReceiver {  @Override  public void onReceive(Context context, Intent intent) {  Bundle extras = intent.getExtras();  if (extras != null) {   String state = extras.getString(TelephonyManager.EXTRA_STATE);   if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {    // INSERT CODE HERE    Log.w("DEBUG", phoneNumber);    } }}        
Нужно сохранить входящие телефонные номера. Какая строка кода должна быть на месте комментария?
     public class MyCustomViewView extends View {      private Paint mTextPaint;      private String mText;      private int mAscent;           public MyCustomViewView(Context context, AttributeSet attrs) {        super(context, attrs);       mTextPaint = new Paint();       mTextPaint.setAntiAlias(true);        mTextPaint.setTextSize(         16 * getResources().getDisplayMetrics().density       );       mTextPaint.setColor(0xFF000000);       setPadding(3, 3, 3, 3);       mAscent = (int) mTextPaint.ascent();       TypedArray a = context.obtainStyledAttributes(         attrs, R.styleable.MyCustomViewView       );       CharSequence s = a.getString (R.styleable.text);       this.mText = s.toString();       invalidate();       requestLayout();       a.recycle();        }              @Override      protected void onDraw(Canvas canvas) {        super.onDraw(canvas);       canvas.drawText(         mText, getPaddingLeft(), getPaddingTop() - mAscent, mTextPaint       );       }     }        
Какого размера будет изображение?
 <xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.company.app">  <uses-sdk android:minSdkVersion="8" />  <application   android:icon="@drawable/ic1_launcher"   android:label="@string/app1_name" >   <activity android:label=@string/app1_name"    android:name=".MainActivity" >    <intent-filter>     <action android:name="android.intent.action.MAIN" />     <category android:name="android.intent.category.LAUNCHER" />    </intent-filter>   </activity>  </application>  <application   android:icon="@drawable/ic2_launcher" android:label="App#2" >   <activity android:label="App#2" android:name=".MainActivity" >    <intent-filter>     <action android:name="android.intent.action.MAIN" />     <category android:name="android.intent.category.LAUNCHER" />    </intent-filter>   </activity>   </application> </manifest>        
Почему данные на выходе некорректны?