Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Новая гонка Street Challenge

Ребят, наконец-то запустили крутую гонку! Кодили долго и работали на результат. Устанавливайте, играйте!
Буду рад лайкам и положительным комментариям

Ссылка на видео -  
Ссылка на игру - 

А вот более детально про игру:
Если любишь острые ощущения и предпочитаешь быть непобедимым, то качай игру Street challenge на Андроид. Невероятно залипательная игра с большим выбором спортивных машин и особых дополнений, которые помогут расчистить дорогу от проезжающих машин и получить еще больше монет. 
Можно начать игру с самого простого автомобиля и прокачать его уровень до максимума или собирать монеты и покупать крутые спорт-кары, чтобы чувствовать себя увереннее на дороге. Трасса представляет собой либо единый поток с односторонним движением, либо адское месиво из встречных машин, которые лучше не задевать. 
Твоя задача – добраться до контрольной точки за определенное время, собрав как можно больше бонусов на дороге: монет, молний-ускорителей, спецмашин. Если ты добрался до контрольной точки, игра не заканчивается. Каждая контрольная точка дает еще больше времени на заезд, и ты можешь продолжать собирать полезные штуки на дороге и крушить проезжающие машины. В случае аварии, ты не проигрываешь, просто немного притормозишь, потеряешь немного времени, но тут же продолжишь свое движение.
Street Challenge - не обычная игра на прохождение уровней. Если ты профессионал, то можешь ехать по трассе достаточно долго, сохраняя запас времени благодаря ускорителям. Так же тебе предоставляется возможность проходить задания и зарабатывать очки, чтобы повышать свой игровой уровень. 
Кто хочет посоревноваться и набрать больший рейтинг, скорее качайте игры и встретимся там!

ВСЕ ВОПРОСЫ ПО ИГРЕ, ОБСУЖДЕНИЯ в сообществе на и 

Еще раз спасибо за установку и положительную оценку!
Ответ:
Детская, качество не ахти какое. Даже устанавливать не буду
Вопрос: Проверка новой версии android приложения

Здравствуйте! Есть Android приложение, которое не лежит в Google Play. Обновления для него выгружаются на сервер и доступны для скачивания по ссылке вида: "http://site.ru/app.apk". Подскажите пожалуйста, как сделать, чтобы при каждом запуске приложения оно проверяло наличие новой версии и в случае обнаружения, скачивало и устанавливало ее. Код написан в Android Studio.
Ответ: CoolMind, А как организовать проверку и загрузку новой версии?
Вопрос: Ошибка при открытии новой activity

Здравствуйте, уважаемые программисты. У меня возник вопрос: пишу приложение под Android, которое , при нажатии на кнопку, получает от сервера три строки и присваивает их значения radioButton, находящимся в новой activity. Проблема в том, что до открытия новой activity происходит ошибка и работа программы прекращается. Думал, дело в сокете (особенно учитывая что без него всё работает), поскольку открываю соединение с сервером сразу после открытия activity, но при отладке я до этого места даже не дохожу. Фактически, при вызове любой функции, содержащей сокет, приложение закрывается. Можете подсказать, в чём ошибка?
Код первой activity:
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.example.ibookpc.kanjiq;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    //Метод кнопки, которая должна открывать новую activity.
    public void onStartButtonClick(View view) {
        startActivity(new Intent(this, QuestingActivity.class));
    }
}
Код второй activity (которая должна открываться, но вместо этого выдаёт ошибку):
Java(TM) 2 Platform Standard Edition 5.0
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
package com.example.ibookpc.kanjiq;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.ArrayList;
 
public class QuestingActivity extends AppCompatActivity {
 
    boolean answered = false;
    boolean correct = false;
    ArrayList<String> words=new ArrayList<String>();
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_questing);
        //На объявлении сокета я ставил точку остановки отладки, но до неё отладчик даже не доходил.
        Socket clientSocket;
        try {
            clientSocket = new Socket("localhost", 2015);
            BufferedReader in  = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            words.add(in.readLine());
            words.add(in.readLine());
            words.add(in.readLine());
        } catch(IOException e)
        {
 
        }
        RadioButton case1 = (RadioButton) findViewById(R.id.radioButton1);
        RadioButton case2 = (RadioButton) findViewById(R.id.radioButton2);
        RadioButton case3 = (RadioButton) findViewById(R.id.radioButton3);
        case1.setText(words.get(1));
        case2.setText(words.get(2));
        case3.setText(words.get(3));
    }
 
    public void onNextButtonClick(View view)
    {
        if (answered==true){
            startActivity(new Intent(this, QuestingActivity.class));
        }
        else {
            Button button = (Button) findViewById(R.id.button3);
            button.setText("Next");
            answered = true;
        }
    }
}
Код сервера:
Java(TM) 2 Platform Standard Edition 5.0
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
package serverPackage;
 
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.Random;
 
public class Server {
    static public ArrayList<String> words=new ArrayList<String>();
    
    public static void main(String[] args) throws IOException {
        ServerSocket servers=null;
        Socket fromClient=null;
        BufferedReader in = null;
        PrintWriter    out= null;
        File file = new File( "words.txt" );
        BufferedReader br = new BufferedReader (
            new InputStreamReader(
                new FileInputStream( file ), "UTF-8"
            )
        );
        String line = null;
        while ((line = br.readLine()) != null) {
            words.add(line);
        }
        br.close();
        
        servers=new ServerSocket(2015);
        fromClient=servers.accept();
            
        in  = new BufferedReader(new 
        InputStreamReader(fromClient.getInputStream()));
        out = new PrintWriter(fromClient.getOutputStream(),true);
        String input, output;
        Random rand=new Random();
        int firstWordIndex=rand.nextInt(words.size());
        int secondWordIndex=firstWordIndex;
        do
        {
            secondWordIndex=rand.nextInt(words.size());
        }
        while (secondWordIndex==firstWordIndex);
        int thirdWordIndex=firstWordIndex;
        do
        {
            thirdWordIndex=rand.nextInt(words.size());
        }
        while (thirdWordIndex==firstWordIndex || thirdWordIndex==secondWordIndex);      
        out.println(words.get(firstWordIndex));
        out.println(words.get(secondWordIndex));
        out.println(words.get(thirdWordIndex));     
        
        
        in.close();
        out.close();
        in.close();
        fromClient.close();
            servers.close();
                
    }
}
Ответ:
Сообщение от YuraAAA
не надо создавать еще один поток
Но в таком случае выдаёт всё ту же ошибку (хотя и с ним до сих пор выдаёт).
Вопрос: Необходимо перенести телефонную книгу со сломанного телефона на новый

На андроиде Алкатель 6030 разбился экран. Управление через сенсор невозможно. Только через компьютер. Синхронизация с гуглом была отключена. Необходимо перенести телефонную книгу со сломанного телефона на новый. Где хранится эта информация на телефоне? Можно ли такой файл просто скопировать на компьютер через юсб, а затем уже на новый телефон?
Ответ: Вот еще бы это все понимал мужчина, который "всегда прав!" и цены бы ему не было, да и мне заморочек меньше. Но с начальством не пререкаются.. В принципе, мне нужно было узнать, где именно храниться информация. Всем большое спасибо за помощь.
Вопрос: Кнопка без стилей на новой активности

Хочу разобраться (хотя бы поверхностно) с программированием под Android посему вопрос может быть глупым, но и выгуглить похожую проблему мне не удалось.
Согласно примера из книги у меня две активности, но проблема в том что в новой активности все кнопки выглядят просто белыми квадратами с текстом как-будто не загружены какие-то стили, кнопки нажимаются, обработчики срабатывают но сама кнопка это белый квадрат не меняющийся при клике, чяднт?

Основная активность: QuizActivity
Доп. активность: CheatActivity
Разметка доп. активности:
Код XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:gravity="center">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="24dp"
        android:text="@string/warning_text"/>
 
    <TextView
        android:id="@+id/answerTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="24dp"/>
 
    <Button
        android:id="@+id/showAnswerButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/show_answer_button"/>
</LinearLayout>
Создание доп. активности:
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
                Intent intent = new Intent(QuizActivity.this, CheatActivity.class);
                boolean answerIsTrue = mQuestionBank[mCurrentIndex].isTrueQuestion();
                intent.putExtra(CheatActivity.EXTRA_ANSWER_IS_TRUE, answerIsTrue);
                startActivity(intent);
Единственный переопределённый метод доп. активности:
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cheat);
        mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);
 
        mAnswerTextView = (TextView) findViewById(R.id.answerTextView);
        mShowAnswer = (Button) findViewById(R.id.showAnswerButton);
        mShowAnswer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(mAnswerIsTrue)
                    mAnswerTextView.setText(R.string.true_button);
                else
                    mAnswerTextView.setText(R.string.false_button);
            }
        });
    }

Манифест:
Код XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.gepar.geoquiz" >
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".QuizActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".CheatActivity" android:label="@string/app_name"/>
    </application>
 
</manifest>
Превью в AndroidStudio и как это выглядит на самом деле во вложении, на реальном девайсе картина та же.
Ответ: а что в файле стилей?
Вопрос: Каков новый аналог устаревшего SimpleCursorAdapter?

SimpleCursorAdapter устарел уже(deprecated) что лучше использовать вместо него какой есть более новый аналог??

Добавлено через 2 минуты
И класс Camera устарел что вместо него есть новое подскажите??
Ответ: В SimpleCursorAdapter устарел один из конструкторов(in API level 11), а не весь класс.
А Camera не устарела. Где ты такую информацию находишь. Читай доки.

Вопрос: Обновить список БД после добавление новой записи?

При добавление записи в таблицу она добавляется в ListView, а при нажатие на какую либо строку списка ID бд выводится в TextView . Проблема в том, что новая запись не выводит ID сразу после добавления и нажатия на нее.
А когда вручную поменяешь горизонтальное и вертикальное положение экрана она выбирается )))
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
insert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ContentValues contentValues = new ContentValues();
                contentValues.put("name",name.getText().toString());
                contentValues.put("phone",phone.getText().toString());
 
                sqLiteDatabase.insert("Contact",null,contentValues);
 
                massname.add(0, name.getText().toString()+" "+ phone.getText().toString());
                adapter.notifyDataSetChanged();
 
                Toast toast = Toast.makeText(getApplicationContext(),
                        "Запись добавлена", Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
                name.setText("");
 
            }
        });
Ответ: Василевский, по моему это нарушение MVC-патерна. Не нужно вручную добавлять элемент в ListView. Нужно добавить запись в модель(базу), а модель должна проинформировать представление(ListView) о том, что ему(представлению) нужно обновиться. Новые данные для ListView следует брать из базы, а не вставлять прямо из полей ввода.
Вопрос: Новая игра: слот-автоматы и армии зомби!

Привет всем!

Мы выпустили новую игрушку, гремучая смесь слот-автоматов и зомби-тематики! 

Очень хотим услышать ваши комментарии по этому поводу! 


(IMG:)

Ход игры: 
  • Крути барабан! После того, как ты крутанул автомат, зомби наносит тебе удар в ответ
  • В зависимости от того, что выпало на слоте, прокачиваются параметры на время боя: здоровье, урон, защита, критический удар, избежание удара и количество линий, которые играют на барабане.
  • В каждом уровне 10 волн нападения сумасшедших зомби-военных
  • После прохождения уровня ты получаешь бонус золотых монеток и энергетических напитков, которые помогают прокачать своего персонажа
  • При совпадении линий на игровом автомате ты также получаешь монеты на прокачку!

(IMG:)

(IMG:)

Игра на 


Ответ:

M
javastic
Пиши об этом в тему "наши достижения"

Вопрос: Нужен новый планшет

Свой поломался и нужен новый. Критерии вот какие: цена до 15к рублей, экран от 8 дюймов, зарядку что бы держал средне(работал без зарядки в течении дня приблизительно), оперативку от 1 гб, внутренняя память от 8 гб, звонки не обязательно, но что бы 3G или 4G были для инета, ну что бы не был медлительным и тянул более-менее современные игрушки. Хотелось бы не алика брать, т.к. не охота ждать так долго.
Ответ: Samsung Galaxy Tab A 8.0 SM-T355 16Gb
Lenovo TAB 2 X30L
Вопрос: MediaPlayer и новый поток для воспроизведения

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

Что я точно понял,что новый поток нужно создавать перед воспроизведением файла. И делает это метод prepareAsync() . Но, если я правильно понимаю, это поток только для подготовки(буферизация и т.д.). К тому же,если воспроизводить файлы в "правильном формате" папки raw проекта, подготовка не требуется. Немного сумбурно,но надеюсь суть вопроса ясна)
Ответ: okunetsky, поток не нужен если вы просто даёте плееру трек. Ваш код помог бы ответить точнее