Форум программистов, компьютерный форум CyberForum.ru

Два действия для одной кнопки - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Layout_gravity http://www.cyberforum.ru/android-dev/thread1137462.html
<FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView
Программирование Android Слушатель для события касания по тексту Подскажите пожалуйста как создать обработчик события касания по разному тексту? Допустим есть StringBuilder str str заполнен с помощью str.append() названиями папок sd карты. Потом всё записываю в String с помощью String s=str.toString(); и вывожу на экран название папки с новой строки с помощью TextView. Как сделать обработчик для каждой папки отдельно? Наверно надо создать что-то наподобии... http://www.cyberforum.ru/android-dev/thread1137383.html
Выполнений действий в фоне Программирование Android
Всем привет! Есть работающий исходник: public void PrtSc() { if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { File sdCard = Environment.getExternalStorageDirectory(); File directory = new File(sdCard.getAbsolutePath() + "/ScreenShots"); directory.mkdirs();
Программирование Android Отловить нажатие кнопки Done
Activity имеет элемент EditText ( android:inputType="number") подскажите как отловить нажатие DONE?
Программирование Android Обновление строки TextView http://www.cyberforum.ru/android-dev/thread1136917.html
допустим, есть приложение в котором в TextView выводится вопрос, и есть две кнопки да или нет, так же кнопка next, так вот как реализовать обновление строки TextView при нажатии next? MainActivity: package com.iandryxainc.geoquiz; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button;
Программирование Android Context немного теории Вообщем нужно мне было запустить из метода своего класса фрагмент. Вообщем как положено передал в класс контекст все дела. public Constructor (Context ctx) { super(ctx); this.ctx = ctx; ctx.getSupportFragmentManager().beginTransaction() .add(R.id.container, frag).commit(); } компилятор писал, что getSupportFragmentManager() не существует. тогда заменил все это дело на следующее. подробнее

Показать сообщение отдельно
Nachinka
11 / 11 / 0
Регистрация: 19.02.2014
Сообщений: 95
04.04.2014, 18:37  [ТС]     Два действия для одной кнопки
Tester64, она вроде итак глобальна...

Вот кодец ввода с микрофона:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import android.app.Activity;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class MainActivity extends Activity implements OnClickListener {
 
    Button start_button;
    Button stop_button;
    boolean reading = false;
    final String TAG = "TAG";
    int myBufferSize = 8192;
    AudioRecord audioRecord;
    private Thread recordingThread = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        start_button = (Button) findViewById(R.id.button1);
        stop_button = (Button) findViewById(R.id.button2);
        start_button.setOnClickListener(this);
        stop_button.setOnClickListener(this);
        createAudioRecorder();
    }
 
    private void createAudioRecorder() {
        int sampleRate = 16000;
        int channelConfig = AudioFormat.CHANNEL_IN_MONO;
        int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
 
        int minInternalBufferSize = AudioRecord.getMinBufferSize(sampleRate,
                channelConfig, audioFormat);
        int internalBufferSize = minInternalBufferSize * 4;
        Log.d(TAG, "minInternalBufferSize = " + minInternalBufferSize
                + ", internalBufferSize = " + internalBufferSize
                + ", myBufferSize = " + myBufferSize);
 
        audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
                sampleRate, channelConfig, audioFormat, internalBufferSize);
    }
 
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1:
            Log.d(TAG, "record start");
            reading = true;
            startRecorder();
            break;
        case R.id.button2:
            Log.d(TAG, "stop recorder");
            reading = false;
            stopRecorder();
            break;
        }
    }
 
    private void startRecorder() {
        recordingThread = new Thread(new Runnable() {
            @Override
            public void run() {
                AudioData();
            }
        }, "AudioRecorder Thread");
 
        recordingThread.start();
    }
 
    protected void AudioData() {
        audioRecord.startRecording();
        byte data[] = new byte[myBufferSize];
        byte[] myBuffer = new byte[myBufferSize];
        int readCount = 0;
        int totalCount = 0;
        while (reading) {
            readCount = audioRecord.read(myBuffer, 0, myBufferSize);
            data = myBuffer;
            totalCount += readCount;
        }
    }
 
    private void stopRecorder() {
        if (null != audioRecord) {
            reading = false;
            audioRecord.stop();
            audioRecord.release();
            audioRecord = null;
            recordingThread = null;
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
Я думаю что-то с созданием самого рекордера...

Добавлено через 20 часов 17 минут
Забыл, что выложил просто код, без изменений, вот и они:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import android.app.Activity;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class MainActivity extends Activity implements OnClickListener {
 
    Button start_button;
    boolean reading = false;
    final String TAG = "TAG";
    int myBufferSize = 8192;
    AudioRecord audioRecord;
    private Thread recordingThread = null;
    boolean RecordPlay = false;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        start_button = (Button) findViewById(R.id.button1);
        start_button.setOnClickListener(this);
        createAudioRecorder();
    }
 
    private void createAudioRecorder() {
        int sampleRate = 16000;
        int channelConfig = AudioFormat.CHANNEL_IN_MONO;
        int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
 
        int minInternalBufferSize = AudioRecord.getMinBufferSize(sampleRate,
                channelConfig, audioFormat);
        int internalBufferSize = minInternalBufferSize * 4;
        audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
                sampleRate, channelConfig, audioFormat, internalBufferSize);
    }
 
    @Override
    public void onClick(View v) {
        if (!RecordPlay) {
            RecordPlay = true;
            reading = true;
            startRecorder();
            Log.d(TAG, "start");
        } else {
            RecordPlay = false;
            reading = false;
            stopRecorder();
            Log.d(TAG, "stop");
        }
 
    }
 
    private void startRecorder() {
        recordingThread = new Thread(new Runnable() {
            @Override
            public void run() {
                AudioData();
            }
        }, "AudioRecorder Thread");
        recordingThread.start();
    }
 
    protected void AudioData() {
        audioRecord.startRecording();
        byte[] data = new byte[myBufferSize];
        byte[] myBuffer = new byte[myBufferSize];
        int readCount = 0;
        int totalCount = 0;
        while (reading) {
            readCount = audioRecord.read(myBuffer, 0, myBufferSize);
            data = myBuffer;
            totalCount += readCount;
        }
    }
 
    private void stopRecorder() {
        if (null != audioRecord) {
            reading = false;
            audioRecord.stop();
            audioRecord.release();
            audioRecord = null;
            recordingThread = null;
        }
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
Где же тут ошибочка.. Кстати, логи выдают, что вот тута: audioRecord.startRecording();
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru