Активность переключения не работает Android - PullRequest
0 голосов
/ 29 февраля 2012

Я работаю над приложением для Android, которое выполняет два действия. Один - это экран меню, а другой - тот, который пользователь фактически использует после того, как сделал выбор. Второе действие выполняет всю свою обработку в рабочем потоке. Когда я делаю выбор, чтобы перейти ко второму упражнению, оно «мигает» в течение примерно 100 мс. Я нашел несколько журналов, которые выглядят так, как будто они говорят мне, что мне нужно исправить, если я знаю, что они имеют в виду.

02-29 10:52:33.850: I/ActivityManager(1255): Starting activity: Intent { cmp=com.wcf.imageShare/.ImageShareActivity }
02-29 10:52:33.920: W/InputManagerService(1255): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@45c0a198 (uid=10097 pid=24918)
02-29 10:52:33.936: W/WindowManager(1255): No window to dispatch pointer action
02-29 10:52:33.952: I/ActivityManager(1255): Displayed activity com.wcf.imageShare/.ImageShareActivity: 96 ms (total 96 ms)
02-29 10:52:34.000: W/WindowManager(1255): No window to dispatch pointer action 1

Сама программа не вылетает, она просто возвращает меня в меню и снова отображает мой выбор. Вот код, который я использую для переключения деятельности

lstServers.setOnItemClickListener(new OnItemClickListener()
    {
        public  void onItemClick(AdapterView<?> parent, View view, int position, long id)
        {
            Beacon.activeServer = position;
            Intent uploadIntent = new Intent(inst,ImageShareActivity.class);
            inst.startActivity(uploadIntent);
        }
    });

inst содержит переменную this, в которой выполняется код, поскольку я не могу ссылаться на нее с помощью this.

Вот описание действия, на которое я пытаюсь перейти:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    try
    {
        progBar = (ProgressBar)findViewById(R.id.progressbar_Horizontal);
        tv = (TextView)findViewById(R.id.prog_txt);
        btnCancel = (Button)findViewById(R.id.cancel);
        btnCancel.setOnClickListener(new OnClickListener()
        {
            public void onClick(View arg0) 
            {
                try {
                    uploaderThread.interrupt();
                    Uploader.CancelUpload();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        uploaderThread.start();
    }
    catch(Exception e)
    {
        Log.d("Uploader ERROR",e.getMessage());
    }
}

И, наконец, часть файла манифеста, связанная с двумя действиями.

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" android:debuggable="true">
        <activity
        android:name=".ImageShareActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
        </activity>
        <activity android:name=".ServerChoiceActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.SEND"/>
                <data android:mimeType="image/*"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
    </application>

У кого-нибудь есть предложения или что-то, что мне не хватает?

Спасибо

Ник Лонг

1 Ответ

1 голос
/ 29 февраля 2012

Измените это на:

lstServers.setOnItemClickListener(new OnItemClickListener()
    {
        public  void onItemClick(AdapterView<?> parent, View view, int position, long id)
        {
            Beacon.activeServer = position;
            Intent uploadIntent = new Intent(your_current_activty.this,ImageShareActivity.class);
            uploadIntent.startActivity();
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...