• Как вызвать метод фрагмента во фрагменте?

    @Raven124 Автор вопроса
    Егор, Из дебага:
    E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
    Process: com.example.beatboxer.myapplication, PID: 23514
    java.lang.RuntimeException: An error occurred while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:318)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at java.lang.Thread.run(Thread.java:761)
    Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
    at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:119)
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74)
    at java.net.InetAddress.getAllByName(InetAddress.java:752)
    at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
    at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187)
    at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156)
    at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98)
    at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:345)
    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:328)
    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243)
    at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
    at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java)
    at com.example.beatboxer.myapplication.fetchData.doInBackground(fetchData.java:28)
    at com.example.beatboxer.myapplication.fetchData.doInBackground(fetchData.java:17)
    at android.os.AsyncTask$2.call(AsyncTask.java:304)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
    at java.lang.Thread.run(Thread.java:761) 
    Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
    at libcore.io.Posix.android_getaddrinfo(Native Method)
    at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
    at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:106)
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74) 
    at java.net.InetAddress.getAllByName(InetAddress.java:752) 
    at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 
    at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187) 
    at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156) 
    at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98) 
    at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:345) 
    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:328) 
    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246) 
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457) 
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405) 
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243) 
    at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) 
    at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java) 
    at com.example.beatboxer.myapplication.fetchData.doInBackground(fetchData.java:28) 
    at com.example.beatboxer.myapplication.fetchData.doInBackground(fetchData.java:17) 
    at android.os.AsyncTask$2.call(AsyncTask.java:304) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
    at java.lang.Thread.run(Thread.java:761) 
    Caused by: android.system.ErrnoException: android_getaddrinfo failed: EACCES (Permission denied)
    at libcore.io.Posix.android_getaddrinfo(Native Method) 
    at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) 
    at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:106) 
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74) 
    at java.net.InetAddress.getAllByName(InetAddress.java:752) 
    at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 
    at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187) 
    at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156) 
    at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98) 
    at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:345) 
    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:328) 
    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246) 
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457) 
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405) 
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243) 
    at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) 
    at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java) 
    at com.example.beatboxer.myapplication.fetchData.doInBackground(fetchData.java:28) 
    at com.example.beatboxer.myapplication.fetchData.doInBackground(fetchData.java:17) 
    at android.os.AsyncTask$2.call(AsyncTask.java:304) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
    at java.lang.Thread.run(Thread.java:761) 
  • Как вызвать метод фрагмента во фрагменте?

    @Raven124 Автор вопроса
    я его убрал. просто крашится прога от этого. Вызов происходит здесь.
    @Override
      public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        data = (TextView)view.findViewById(R.id.fetdata);
     fetchData.execute();
    
      }
  • Как вызвать метод фрагмента во фрагменте?

    @Raven124 Автор вопроса
    Если это mainactivity то все работает. а во фрагменте если вызываю класс фетчдатта то прога вылетает.Почему? объясните пожалуйста.что не так(
  • Как упростить платежную матрицу?

    @Raven124 Автор вопроса
    я по первой кнопке упрощаю матрицу по строкам..потом по второй кнопке перезаписываю массив новыми значениями со стрингрида. И проделываю то же самое. Столбец 7 5 почему то не удаляется.
  • Как упростить платежную матрицу?

    @Raven124 Автор вопроса
    Я тоже так думаю. Но вот что выходит
    5b168a2701b2f032606539.png
    Вот код может я что-то где-то не правильно пишу для упрощения по столбцам.
    n:=StringGrid1.RowCount-1;
    m:=StringGrid1.ColCount-1;
    for i:=1 to n do
    for j:=1 to m do
    arplat2[i,j]:=strtoint(StringGrid1.Cells[j,i]);
    //логический массив упрощенных строк 1 игрока
    for i := 1 to n do
    arupr[i]:=0;
    //сравнивание столбцов платежной матрицы
    for i := 1 to 4 do
    begin
    k:=0;
    for j := 1 to 4 do
    begin
    k:=k+1;
    s:=0;
    for t := 1 to 4 do
    begin
    if (arplat2[t,i]>=arplat2[i,t+k]) then
    s:=s+1;
    end;
    if s=4 then arupr[i+k]:=1;
    if s=0 then arupr[i]:=1;
    end;
    end;
    //arupr[1]:=1;
    //определение размерности упрощенной матрицы
    s:=0;
    for i := 1 to 4 do
    if arupr[i]=0 then s:=s+1;
    StringGrid1.ColCount:=s+1;
    //заполнение упрощенной матрицы
    k:=0;
    for i := 1 to 4 do
    begin
    if arupr[i]=0 then
    begin
    k:=k+1;
    StringGrid1.Cells[0,k]:='А'+inttostr(i);
    for j := 1 to 4 do
    StringGrid1.Cells[j,k]:=inttostr(arplat2[i,j]);
    end;
    end;
    end;
  • Как упростить платежную матрицу?

    @Raven124 Автор вопроса
    Должно получится {5,6} {6,4}.
  • Как реализовать редактирование таблицы через StrinGrid?

    @Raven124 Автор вопроса
    kalapanga, понял, понял. У меня база на Аксес. Просто программа будет тупо на одном компе. И тот же MMSQL они ставить не собираются. Печально конечно.Было бы проще. То есть я правильно понимаю, что нужно при редактировании удалять записи по id связанные с главной таблицей. А потом перезаписывать новый исправленный набор из StringGrid??
  • Как реализовать редактирование таблицы через StrinGrid?

    @Raven124 Автор вопроса
    kalapanga,
    Все корректно добавляет, а при редактировании он заменит эти детали копиями той что добавляю к имеющимся. А еще такой вопрос. А как по другому можно сделать добавление нескольких деталей в связанную таблицу? Просто стрингрид это было первой мыслью. Есть еще какая-нибудь реализация. Я хочу добавлять и видеть что я добавляю на форме как я сейчас делаю. А потом еще мог редактировать. мог выбирать и менять инфу..удалить лишнюю деталь. Посоветуйте пожалуйста. Через стрингрид я уже понял гемор конкретный. С верхней частью то хорошо все. Мне вот надо детальки удобно добавлять и редачить.
    5ae3406bdc5ec673619423.png5ae340a8ce658168151684.png
  • Как реализовать редактирование таблицы через StrinGrid?

    @Raven124 Автор вопроса
    kalapanga,
    ADOQUERY6
    insert into Zapas_chasti ([id_realiz],[id_zapchast],[kolvo]) values (@id_realiz, @id_zapchast, @kolvo);
    Когда я добавляю новую заявку. добавляю деталей в стрингрид. нажимаю Сохранить и в основные таблицы все улетает. Все красиво. А уже непосредственно при редактировании данной записи я к примеру добавляю еще одну деталь. По идее он должен заново переписать из стрингрид уже с новой деталью в таблицу. А он ее записывает а вместо тех что были копии той что добавил.
  • Как реализовать редактирование таблицы через StrinGrid?

    @Raven124 Автор вопроса
    kalapanga, при добавлении все как надо заполняется. А вот если например понял что не внес еще деталь. Я нажимаю редактирование. В стрингриде те самые записи деталей из втлорой таблицы. Я к ним добавляю еще деталь. Нажимаю СОхранить и он эту добавленную деталь добавляет, но и еще перезаписывает собой остальные.
    к примеру в таблице были шины, руль. Я нажимаю редактирование заявки, открывается форма редактирования. В стрингриде те самые шины, руль. Я добавляю к ним коленвал. Нажимаю сохранить. И что происходит. Вместо шины руль коленвал ->> коленвал,коленвал,коленвал
  • Как реализовать редактирование таблицы через StrinGrid?

    @Raven124 Автор вопроса
    Добавление по кнопке данных в стрингрид

    StringGrid1.RowCount:= StringGrid1.RowCount+1;
    StringGrid1.Cells[0,StringGrid1.RowCount-2]:=DBLookupComboBox2.KeyValue;
    StringGrid1.Cells[1,StringGrid1.RowCount-2]:=DBLookupComboBox2.Text;
    StringGrid1.Cells[2,StringGrid1.RowCount-2]:=edit5.Text;

    Процедура добавление записи в таблицу из Стрингрида
    for I := 1 to StringGrid1.RowCount-2 do
    begin
    ADOQuery6.Parameters.ParamByName('@id_realiz').Value:=ADOQuery7.FieldByName('id_realiz').AsString;
    ADOQuery6.Parameters.ParamByName('@id_zapchast').Value:=StrToInt(StringGrid1.Cells[0,I]);
    ADOQuery6.Parameters.ParamByName('@kolvo').Value:=StrToInt(StringGrid1.Cells[2,I]);
    ADOQuery6.ExecSQL;
    Form3.ADOQuery2.Next;
    end;
  • Как добавить несколько данных в связанную таблицу?

    @Raven124 Автор вопроса
    kalapanga, Спасибо за наводки)
    5ae1baff96d1a766330515.png
    ВОт кусочек кода как это делаю. Может кому понадобится.

    for I := 1 to StringGrid1.RowCount-2 do
    begin
    ADOQuery6.Parameters.ParamByName('@id_realiz').Value:=ADOQuery7.FieldByName('id_realiz').AsString;
    ADOQuery6.Parameters.ParamByName('@id_zapchast').Value:=StrToInt(StringGrid1.Cells[0,I]);
    ADOQuery6.Parameters.ParamByName('@kolvo').Value:=StrToInt(StringGrid1.Cells[2,I]);
    ADOQuery6.ExecSQL;
    end;
  • Как добавить несколько данных в связанную таблицу?

    @Raven124 Автор вопроса
    Добавление в две связанные таблицы реализовал через 3 компонента ADOQUERY

    1:INSERT INTO Realiz ([Work],[data],[marka],[gos_nomer],[probeg],[id_ispoln]) //Добавление в главную
    values (@Work,@data,@marka,@gos_nomer,@probeg,@id_ispoln);
    2:insert into Zapas_chasti ([id_realiz],[id_zapchast],[kolvo]) values (@id_realiz, @id_zapchast, @kolvo); //Этим запросом выхватываю ID через выборку.
    3:select id_realiz from Realiz where Work=@Work and gos_nomer = @gos_nomer and probeg=@probeg //Добавляю в дочернюю таблицу уже деталь с тем ID что в главной.

    Не могу понять как организовать добавление n-кол-ва деталей. Знаю реализацию через ADOTabl через Insert apennd и тд. но это не вариант. Надо как-то сделать чтобы заполнив основную таблицу тут же например в dbgrid забил детали. Нажал Сохранить в запросе создалась запись в основной таблице..уже знается айди..а потом из того dbgrida записи с деталями улетели в дочернюю. Подскажите как лучше сделать?
  • Как реализовать вывод данных в два dbgrid по Id?

    @Raven124 Автор вопроса
    kalapanga, Я имею ввиду вот что. В первом dbgrid1 я выбираю первую запись, а во втором dbgrid выводятся данные по первой записи. То есть таблицы связаны один ко многим. В одной заявке "находятся" замененные детали.
    5ad4b4a3402aa097418073.png