Stránka 1 z 1

Kam zařadit kód ze třídy main aby se rozjel?

Odeslat příspěvekNapsal: 5. 12. 2019 11:58
od David751
Ahoj, zkouším vytvořit jednoduchou aplikaci, která by mi mohla vytáhnou určitá data z webu a zobrazit je.

Pro příklad bych chtěl zobrazit title ze stránky WikiHow. Uvedený kód funguje v čistě v Javě v Intellij studiu.
Ale když ho zpustím v Android studiu, načte se jen původní přednastavené Hello World místo title("wikiHow - How to do anything").
Jsoup mám přidanou jako knihovnu, složky naimportované, vkládám do správného id. Program tyto příkazy nebere jako chybu.
Na zkoušku jsou zkoušel zapsat také čistý text. Ani ten se nenačte místo "Hello World". Takže se funkce main vůbec nezpustí.
Jenže kdybych dal kód z funkce main do funkce onCreate, program by hlásil chyby (nemohu za protected void onCreate(Bundle savedInstanceState) dát throws IOException.
Jak bych to mohl napsat aby se mi funkce main zpustila?
Děkuji

Zde je můj kód:

Kód: Vybrat vše
package com.example.jsouprun;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
//
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;


public class MainActivity extends AppCompatActivity {

    TextView Promena_TextViewTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState)  {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
}

    public void main (String[] args) throws IOException{
        //Document d=Jsoup.connect(("https://www.wikihow.com/Main Page")).get();
        Document doc = Jsoup.connect("https://www.wikihow.com/Main-Page").get();
        String title = doc.title();
        System.out.println(title);

        Promena_TextViewTextView = Promena_TextViewTextView.findViewById(R.id.mojeid); 
//přiřazení proměné ke grafice
        Promena_TextViewTextView.setText(title);
        Promena_TextViewTextView.setText("ahoj");
        }
    }

Re: Kam zařadit kód ze třídy main aby se rozjel?

Odeslat příspěvekNapsal: 5. 12. 2019 14:49
od Wikan
V Javě nedělám, ale nestačilo by tam dát catch pro IOException a pak už tam to throws být nemusí?

Re: Kam zařadit kód ze třídy main aby se rozjel?

Odeslat příspěvekNapsal: 5. 12. 2019 15:22
od Nargon
Tak nějak. Taky v javě nedělám a už vůbec ne v android krabičkách. Ale jako první mě taky napadlo tam dát sekci try..catch a případné chyby si sám odchytit (a ideálně i zobrazit uživateli), ale hlavně to neposílat dál do systému kde na to systém zareaguje leda tak, že ukončí aplikaci.

Re: Kam zařadit kód ze třídy main aby se rozjel?

Odeslat příspěvekNapsal: 8. 12. 2019 21:44
od Just_jo
A co takto?
Kód: Vybrat vše
protected void onCreate(...
  setContentView(..
  try {
   main();
  } catch ( IOException e ) {}

public void main () ... // String[] args je zbytečné, když to nevyužíváš.


Do konzole se dá psát mnohem jednodušeji než System.out