Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как получить результат выполнения класса в виде списка?

Всем привет.

Есть класс "Main", он связан с layot на котором есть "ListView" и "Button"
Задача по нажатию кнопки запустить другой модуль, что то там сделать, и вернуть список.

Вот класс Main

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
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class Main extends Activity implements OnClickListener {
 
 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        Button btnFind = (Button) findViewById(R.id.ButtonFind);
        btnFind .setOnClickListener(this);
 
    }
 
    public void onClick(View v) {
        int id = v.getId();
        Intent intent = null;
        switch (id) {
 
            case R.id.ButtonFind:
                intent = new Intent(getApplicationContext(), GetInformationList.class);
                startActivityForResult(intent);      
        }
 
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         // тут надо что то написать чтобы как то обработать список
        }
    
    }
}
класс GetInformationList

Java
1
2
3
4
5
6
7
8
9
10
11
public class GetInformationListextends {
 
    private ArrayAdapter<String> LisfOfArrayAdapter;
 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        LisfOfArrayAdapter.add("Что-то здесь" + "\n" + "еще что то тут");
 
    }
}

что надо написать в "GetInformationList" чтобы отправить результат "LisfOfArrayAdapter"?
что надо написать в "Main" в "onActivityResult" чтобы получить результат?

Помогите пожалуйста. Спасибо
Ответ:
Вопрос: Отправить post запрос с параметрами на сайт и получить результат

Всем привет! Делаю проект для сайта школы. Нужно отправить post запрос с параметрами на сайт и получить результат.
Стандартный способ не помогает, приложение вылетает при включении (делала по инстукциям, в манифесте разрешение прописала). Перебрала несколько библиотек, ничего не выходит
В программировании на андроид опыта нет, писала приложение первый раз, всё получается, кроме отправки post запроса. В будущем планирую изучить андроид и улучшать приложение, но сейчас нужно сделать рабочую версию как можно скорей. Поделитесь, пожалуйста, рабочим способом отправки post запроса.
Ответ: Привет!

Прежде всего, если приложение вылетает при включении, то, надо посмотреть красные строчки в LogCat, туда записывается подробный текст ошибки, это очень важный навык.
В крайнем случае, используйте try-catch и выводите информацию из Exception в Toast...

Если проблема, действительно, в том, что запрос отправляется из потока UI, то создайте новый поток. Самый простой способ - Thread...
Java
1
2
3
4
5
6
7
8
9
10
new Thread(new Runnable() {
    public void run() {
        /*
         * Здесь отправлять запрос
         * TODO: кое-что придется подправить, например, this заменить на MainActivity.this,
         * переменные, которые берутся извне потока, сделать final и так далее,
         * на что ругается компилятор, то и исправлять
         */
    }
}).start();
Дальше - лучше, можно перейти на AsyncTask, можно создать свой класс с потоком внутри (а, не усложнять код снаружи), и так далее...
Вопрос: Работа с сетью в другом потоке. Нужно получить результат

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class AnotherThread extends Thread {
        @Override
        public void run() {
                    try {
                        //фрагмент кода работы с сетью
                    } catch (Exception e) {
                        System.out.println("net seti / oshibka");
                    }
        }
    }
 
 
@Override
        public void OnClick() {
AnotherThread t = new AnotherThread();
        t.start();
System.out.println(result);//результат работы с сетью
        }
Помогите улучшить методы
Ответ: каличные там методы, в этом асинктаске
по теме - код вырван из контекста, непонятно что находится и в каком классе, где слушатель, где вью
Вопрос: Получить индекс элемента в кастомном списке

Добрый день. У меня имеется кастмоный список, состоящий из двух и более элементов. Например, я кликнул по 2 элементу списка, длина которого равна 4.
Как можно получить индекс элемента, который был нажат.
Подскажите пожалуйста.

Код элемента для кастомного списка:
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
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="120dp"
        android:layout_marginLeft="3dp"
        android:layout_marginRight="3dp"
        android:orientation="horizontal" >
        <TextView
            android:id="@+id/listitem_date"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="left|center_vertical"
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_marginLeft="10dp"/>
        <TextView
            android:id="@+id/listitem_sum"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="left|center_vertical"
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_marginLeft="10dp"/>
        <TextView
            android:id="@+id/listitem_type"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="left|center_vertical"
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_marginLeft="10dp"/>
        <TextView
            android:id="@+id/listitem_description"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="left|center_vertical"
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_marginLeft="10dp"/>
    </LinearLayout>
</LinearLayout>
Код, где находится ListView:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.lesha.myapplication.IncomeActivity">
    
    <ListView
        android:layout_width="wrap_content"
        android:layout_height="380dp"
        android:id="@+id/listViewIncome"
        android:layout_below="@+id/Settings"
        android:layout_alignParentStart="true" />
 
    </RelativeLayout>
Класс, где выводится список:
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
package com.example.lesha.myapplication;
 
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
 
import java.util.List;
 
public class IncomeActivity extends AppCompatActivity {
    DatabaseHandler db;
    Button deleteData;
    ListView lvMain;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_income);
                db= new DatabaseHandler(this);
        deleteData = (Button)findViewById(R.id.buttonDeleteIncome);
        DeleteData();
        List<Event> events = db.getAllEventsIncome();
        if(events.size()!=0){
                lvMain = (ListView) this.findViewById(R.id.listViewIncome);
                lvMain.setAdapter(new BoxAdapter(this, events));
    }
        else{
            Toast.makeText(IncomeActivity.this, "List of incomes is empty", Toast.LENGTH_LONG).show();
        }
}
}
Добавлено через 41 минуту
И имеется класс с переменными:
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
package com.example.lesha.myapplication;
 
public class Event {
   String _sum;
    String _type;
    String _description;
    String _date;
 
    public Event(){
    }
 
    public Event(String Date, String Sum, String Type, String Description){
        _sum = Sum;
        _type = Type;
        _description = Description;
        _date = Date;
    }
    public String getDate(){
        return this._date;
    }
 
    public void setDate(String Date){
        this._date = Date;
    }
 
    public String getSum(){
        return this._sum;
    }
 
    public void setSum(String Sum){
        this._sum = Sum;
    }
 
    public String getType(){
        return this._type;
    }
 
    public void setType(String Type){
        this._type = Type;
    }
 
    public String getDescription(){
        return this._description;
    }
 
    public void setDescription(String Description){
        this._description = Description;
    }
}
Ответ: Спасибо за помощь!
Вопрос: Сохранение состояния списка

Привет. Прошу помощи в организации следующей вещи:

Имеется приложение, построенное в виде списка (ListView), список формируется из массива, который я самостоятельно заполняю. Затем, при нажатии на пункт списка, открывается другая активити (естественно туда передается параметр) со статьей. Так вот, пользователи просят, чтобы приложение умело запоминать прочитана статья или нет (то есть был ли нажат пункт списка или еще пока нет...). Сложности еще в том, что приложение я периодически обновляю, добавляя туда новых статей, следовательно нужно помнить и старые статьи (прочитаны или нет) и принимать во внимание новые.

Никак не могу придумать алгоритм, который поможет мне справиться с этой задачей. Прошу Вашей помощи!
Ответ: а почему не использовать шаредпреференс, посмотрите есть такой класс в интернете : tinyDb он умеет сохранять в шерд преференс все что вам угодно(массивы, листы ...) у каждой статьи должен быть уникальный айди, лучше чтоб его что то генерировало, этот лист вы вытягиваете из шердпреференс каждый раз создаете констрактор адаптера, в адаптере смотите если айди статьи в листе то не выделяете, если статья была открыта добавляете айди в лист. при апдейте это не пострадает. только клир дата и удаление аппликации
Вопрос: Ошибка при добавлении данных в список

Здравствуйте, такой вопрос, у меня список и собственный адаптер, в адаптере размер списка указан от количества элементов в списке String который выводится уже на экран в виде списка. Когда я пытаюсь добавить в список String новый элемент происходит ошибка.
Ответ: editText6 это текст SMS, если нет этого текста, то не будет добавления, попробую с разметкой поработать.

Добавлено через 16 минут
поставил другой listView и все заработало, видимо в файле разметки что то было не так, спасибо Rube

Добавлено через 1 час 50 минут
Еще вопрос, а как изменить размер текста и цвет текста программно, скажем цвет текста кто отправляет такой то и цвет текста принимаемых сообщений такой то, то есть у меня есть выбор цвета и размера текста и как программно это задать для списка.

Добавлено через 1 час 0 минут
все решил проблему, все просто и легко
Вопрос: Получить IP, используя класс InetAddress

пытаюсь получить IP адресс

Java
1
2
3
4
5
6
7
8
9
10
import java.net.InetAddress;
 
InetAddress  IP_;
String Str = IP_.getHostAddress();
 
// требует инициализировать IP_, а конструктора доступного нет...
// делаю 
IP_=null;
// но и это не помогает
// тк ошибка нулевого укзателя
подскажите как InetAddress инициализировать и использовать его методы.
методы вроде статические, но :: тоже не работает, пишет not supported at this language level

нужна помощь
Ответ: SergioO, если уж вам так хочется плюсов, могу посоветовать CrystaX Ndk, там и stl полноценный и boost есть и много чего еще из коробки.
Вопрос: Retrofi 2 как получить результат параллельных запросов

Все привет. Вот над чем я задумался. Допустим, я делаю три одинаковых запроса подряд на загрузку, к примеру, картинки в base. Затем мне нужно записать результаты в массив, но вот какая штука, запросы стартанули по очереди, одновременно, ну или с совсем небольшим интервалом, в секунду, но завершится они могут по разному, не факт что первый запрос вернет картинку быстрее, а нужно чтобы по итогу в массиве оказалось 3 картинки в нужном порядке (в порядке старта запросов). Так вот как бы это реализовать грамотно, я в подсознании понимаю что должно быть не сложно, но что-то туплю.
Ответ: свой Callback написать, наследоваться от ретрофитовского
и там поле сделать int pos;

после того как он отработал - брать поле и писать в массив в позицию pos
PROFIT
Вопрос: Список с разными и сложными элементами

Здравствуйте, дорогие форумчане.
Задумал я тут создать мобильный клиент для VK и у меня появились проблемы.
Мне нужно отобразить список новостей. Так как их много, логично выводить их как-то в виде списка.
Однако новости могут быть разными, на них должно быть несколько разных кнопок.
В общем, как мне сделать список, у которого каждый элемент будет содержать несколько других компонент?
Думал попробовать сделать fragment и выводить их, но как-то не получилось, да и по результатам гугления понял, что это скорее неправильный подход.
Вот на toster есть предложение создать adapter свой, но не хотелось бы переписывать стандартный класс, так как мне кажется, что кто-то эту проблему уже решал (создатели официального приложения, например).

Что-то ссылка не прикрепляется :\

Заранее спасибо за помощь.
Ответ:

Не по теме:

это было самое очевидное решение )
вся магия в адаптере

Вопрос: Создание AlertDialog со списком

Доброе утро форумчане, мне нужно выполнить несложное задание.
Если есть у каво свободное время, я буду очень благодарен если вы мне поможете.

Мне нужно сделать программу ниже, и сделать скриншоты при ее выполнении.(скриншот окна с кнопкой, со списком, и результат выбора пункта в списке, о чем я говорю, сейчас поймете).

Добавить на экран одну кнопку. При нажатии на нее должно отображаться диалоговое окно, которое содержит следующие пункты: «группа», «студент», «дисциплина», «ок». При выборе одного из пунктов показывается всплывающее сообщение с соответствующим текстом или закрытия диалога.

Условия:
• Тип Layout: LinearLayout (Horizontal);
• Alert диалог: Cо списком;
• Писать нужно на Java. (Android Studio или IDE IntelliJ как я понимаю).

Теперь текст который должен быть(скопируйте, это на украинском):
• Група - КСМ33;
• Студент - Карпец Дмитро Олександрович(или Карпец Дмитро);
• Дисциплина - Системне програмування(или Системне ПЗ);

Мне нужно сегодня сдать это задание по предмету, у меня есть несколько сотень на киви, могу отблагодарить разве что ими (:
я не знаю кто здесь сидит, я новый пользователь, так что буду благодарен за помощь, очень очень благодарен.
Ответ: Muro23, попробуйте ADT