데이터는 AsynTask 클래스의 사용자 지정 목록보기에 도달 할 수 없습니다.

린 드래곤

사용자 지정 목록보기에 데이터를 설정할 수 없습니다 ..

튜토리얼 링크는 learn2crack입니다.

튜토리얼 자체는 괜찮습니다. 코드와 결합하면 데이터가 목록보기에 도달 할 수 없습니다 ..

첫째,

MainActivity는 FragmentActivity를 확장하여 OnTabChangeListener, OnPageChangeListener ..를 구현합니다 .

MyPageAdapter는 PageAdapter를 확장합니다 . .. 코드를 게시하기에 너무 길고 코드를보기에 혼란 스러울 수 있기 때문에 일부 코드를 남길 것입니다 .. 필요한 경우 수정하겠습니다 ..

내 코드를 확인해주세요 ..

MainTabActivity.java

public class MainTabActivity extends FragmentActivity implements OnTabChangeListener,OnPageChangeListener{
    TextView txtGoldDate, txtGoldTime, txtGoldPrice;
    SQLiteDatabase db;
    private TabHost host;
    private ViewPager pager;

    DatabaseHelper dbHelper;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        acquireId();

        host.setup();

        TabSpec tab1 = host.newTabSpec("Tab1");

        tab1.setIndicator("", getResources().getDrawable(R.drawable.mygold));

        tab1.setContent(R.id.Tab1);

        TabSpec tab2 = host.newTabSpec("Tab2");
        tab2.setIndicator("", getResources()
                .getDrawable(R.drawable.mycurrency2));

        tab2.setContent(R.id.Tab2);

        TabSpec tab3 = host.newTabSpec("Tab3");
        tab3.setIndicator("",
                getResources().getDrawable(R.drawable.myfinalmyanmar));

        tab3.setContent(R.id.Tab3);

        host.addTab(tab1);
        host.addTab(tab2);
        host.addTab(tab3);

        pager.setAdapter(new MyPageAdapter(this));
        pager.setOnPageChangeListener(this);
        host.setOnTabChangedListener(this);

    }

    private void acquireId() {
        // TODO Auto-generated method stub
        host = (TabHost) findViewById(android.R.id.tabhost);
        pager = (ViewPager) findViewById(R.id.pager);
        txtGoldDate = (TextView) findViewById(R.id.txtGoldDate);
        txtGoldTime = (TextView) findViewById(R.id.txtGoldTime);
        txtGoldPrice = (TextView) findViewById(R.id.txtGoldPrice);

    }

    public void onPageSelected(int pageNumber) {
        // TODO Auto-generated method stub
        host.setCurrentTab(pageNumber);

    }

    public void onTabChanged(String tabId) {
        // TODO Auto-generated method stub
        System.out.println("Tab ID: " + tabId);

        int pageNumber = 0;
        if (tabId.equals("Tab1")) {
            pageNumber = 0;
        } else if (tabId.equals("Tab2")) {
            pageNumber = 1;
        } else if (tabId.equals("Tab3")) {
            pageNumber = 2;
        }
        pager.setCurrentItem(pageNumber);
    }

MyPageAdapter.java

    public class MyPageAdapter extends PagerAdapter {
        ListView myListViewGold;
        LayoutInflater li1;
       Button btnRefreshGold;

        public MyPageAdapter(Context ctx) {

                this.ctx = ctx;
            }


            @Override
            public Object instantiateItem(ViewGroup container, int position) {

            if (position == 1) {

                    btnRefreshGold.setOnClickListener(new View.OnClickListener() {

                        public void onClick(View v) {

                             ConnectToServer cNTS;
                            cNTS = new ConnectToServer(myListViewGold,goldValue);
                            cNTS.execute(urlGoldAddress);
                        }
                    });
                    ((ViewPager) container).addView(v1, 0);

                    return v1;
                    }

public void acquireIdAtPageAdapter() {
            // id
            li1 = (LayoutInflater) ctx
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v1 = li1.inflate(R.layout.gold_layout, null);
            btnRefreshGold = (Button) v1.findViewById(R.id.btnRefreshGold);
            myListViewGold = (ListView) v1.findViewById(R.id.myListViewGold);
            txtGoldDate = (TextView) v1.findViewById(R.id.txtGoldDate);
            txtGoldTime = (TextView) v1.findViewById(R.id.txtGoldTime);
            txtGoldPrice = (TextView) v1.findViewById(R.id.txtGoldPrice);

                }

ConnectToServer.java

    public class ConnectToServer extends AsyncTask {
                            public ConnectToServer(ListView listview,String[] myArr) {

                        this.myListView = listview;

                        this.myArr=myArr;

                    }

                    @Override
                    protected Object doInBackground(Object... params) {


                    addGoldNode(ng, i);

}
                            @Override
                    protected void onPostExecute(Object result) {
                        // TODO Auto-generated method stub
                        super.onPostExecute(result);    

                        CustomList adapter = new CustomList(ctx,myArr,imageId);         
                        myListView.setAdapter(adapter);

                        Log.i("Arr value at postExecute", myArr[1]+myArr[2]);
                        System.out.println("myListView id onPostExecute"+myListView.getId());


                    };

                    public void addGoldNode(NodeList ng, int i) {

                        Element entry = (Element) ng.item(i);
                        String rawDate = entry.getAttribute("Date");
                        String dateValue[] = rawDate.split(" ");
                        String date = "";
                        String time = "";

                        String priceValue = entry.getAttribute("Value");
                        priceValue += " USD ";
                        if (dateValue.length > 0 && priceValue != null) {
                            date = dateValue[0];
                            time += dateValue[1]+" (UTC)";

                            System.out.println("date " + date);
                            System.out.println("time " + time);

                            System.out.println("priceValue " + priceValue);




                            myArr[1] = date;
                            myArr[2] = time ;
                            myArr[3] = priceValue;

                            System.out.println("Gold Value "+myArr[1] + "  "+myArr[2]+"  "+myArr[3]);



                        } 

CustomList.java

public class CustomList extends ArrayAdapter<String> {

    private  Context context;
    private  String[] web=new String[6];
    String date;
    private  Integer[] imageId;


    public CustomList(Context context, String[] web, Integer[] imageId) {

        super(context, R.layout.list_single, web);
        this.context = context;
        this.web = web;
        this.imageId = imageId;



    @Override
    public View getView(int position, View view, ViewGroup parent) {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();

        View rowView = inflater.inflate(R.layout.list_single, null, true);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.img);
        TextView text3 = (TextView) rowView.findViewById(R.id.txt3);
        TextView text2 = (TextView) rowView.findViewById(R.id.txt2);
        TextView text1 = (TextView) rowView.findViewById(R.id.txt1);


        //TextView textErr=(TextView)rowView.findViewById(R.id.txtError);

        Log.i("Custom List Value ", web[1]+web[2]+web[3]);
        text1.setText(web[1]);
        text2.setText(web[2]);
        text3.setText(web[3]);

        imageView.setImageResource(imageId[0]);
        return rowView;
    }

}

중괄호가 빠진 걸 용서 해주세요 .. 목록보기에 데이터를 설정하는 방법 만 보여 드리겠습니다. 저는 안드로이드 초보자입니다 .. 인내심을 갖고 조금만 가르쳐주세요. 미리 감사드립니다 ..

PS 내 앱 개요는 rss에서 데이터를 가져오고 데이터를 listview로 설정하는 것입니다. 사용자 지정 listview로 변경하기 전에 완전히 작동합니다.하지만 사용자 지정 목록으로 변경하면이 오류가 발생합니다.

린 드래곤

Fixed .. 사실, learn2crack 사용자 지정 목록 자습서가 내 코드에 맞지 않습니다 ..

그래서 AndroidExample 에서 코드를 변경합니다. 이제 문제가 해결되었으며 AsyncTask로도 괜찮습니다 ..

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android 사용자 정의 클래스 배열 목록 데이터를 검색 할 수 없습니다.

분류에서Dev

Android Studio는 사용자 정의보기 클래스를 인식 할 수 없습니다.

분류에서Dev

QTabWidget에서 사용자 정의 클래스를 사용할 수 없습니다.

분류에서Dev

사용자 지정 목록보기에 대한 어댑터의 레이아웃을 확인할 수 없습니다.

분류에서Dev

scala slick 2.0.2는 사용자 정의 클래스에 자동 매핑 할 수 없습니다.

분류에서Dev

Spring JPA는 Kotlin 데이터 클래스에서 사용자 지정 setter로 필드를 매핑 할 수 없습니다.

분류에서Dev

클래스의 생성자는 지정된 유형에 적용 할 수 없습니다.

분류에서Dev

laravel의 사용자 정의 클래스에서 호출 할 때 클래스를 찾을 수 없습니다.

분류에서Dev

Kotlin의 특정 데이터 클래스에 대한 목록을 % Class %로 캐스팅 할 수 없습니다.

분류에서Dev

특정 클래스에서만 사용할 수 있도록 Kotlin 인터페이스의 범위를 지정할 수 있습니까?

분류에서Dev

클래스의 생성자는 지정된 유형에 적용 할 수 없습니다. 도움에 대한 희망

분류에서Dev

사용자 지정 데이터는지도 출력에 알 수없는 데이터를 기록합니다.

분류에서Dev

C #의 웹 서비스에서 사용자 지정 클래스를 반환 할 수 없습니다.

분류에서Dev

각도 사용자 지정 지시문 링크 함수에서 속성 데이터에 액세스 할 수 없습니다.

분류에서Dev

조각의 사용자 지정 어댑터에 목록을 설정할 수 없습니다.

분류에서Dev

사용자 정의 목록보기 어댑터의 clear ()는 목록 데이터도 업데이트합니다.

분류에서Dev

CakePHP : 사용자 정의 패키지에서 클래스를로드 할 수 없습니다.

분류에서Dev

사용자 지정 배열을 데이터베이스에 저장할 수 없습니다.

분류에서Dev

사용자 지정 어댑터의 항목을 업데이트 할 수 없습니다.

분류에서Dev

Laravel 5.4 애플리케이션은 사용자 정의 디렉토리에 사용자 정의 클래스를로드 할 수 없습니다.

분류에서Dev

Ksoap : 웹 메서드에 매개 변수로 사용자 정의 클래스를 전달할 때 예외를 직렬화 할 수 없습니다.

분류에서Dev

사용자 정의 TableViewCell 클래스는 충돌없이 열거 형 값을 반환 할 수 없습니다.

분류에서Dev

요청이 완료되기 전에 AJAX 요청의 데이터가 사용되지 않도록 보장하는 데 promise를 사용할 수 있습니까?

분류에서Dev

파생 클래스에서 전용 멤버에 액세스 할 수 없습니다 (생성자가 기본 클래스에 정의되어 있어도)

분류에서Dev

각도 2에서 사용자 지정 파이프를 사용하면 HTML로드시 데이터를로드 할 수 없습니다. 오류가 발생하여 정의되지 않은 속성을 읽을 수 없습니다.

분류에서Dev

Terraform의 Azure VM에서 사용자 지정 데이터를 실행할 수 없습니다.

분류에서Dev

xib에서 생성 된 사용자 정의 UITableView 셀에 대한 제약 조건을 설정할 수 없습니다. 모든 데이터가 크기 클래스의 변경에서 사라지기 때문에

분류에서Dev

사용자는 PHP 양식을 사용하여 MySQL 데이터베이스의 정보를 업데이트 할 수 없습니다.

분류에서Dev

C ++의 부모 클래스에서 자식 클래스로 데이터를 상속 할 수 없습니다.

Related 관련 기사

  1. 1

    Android 사용자 정의 클래스 배열 목록 데이터를 검색 할 수 없습니다.

  2. 2

    Android Studio는 사용자 정의보기 클래스를 인식 할 수 없습니다.

  3. 3

    QTabWidget에서 사용자 정의 클래스를 사용할 수 없습니다.

  4. 4

    사용자 지정 목록보기에 대한 어댑터의 레이아웃을 확인할 수 없습니다.

  5. 5

    scala slick 2.0.2는 사용자 정의 클래스에 자동 매핑 할 수 없습니다.

  6. 6

    Spring JPA는 Kotlin 데이터 클래스에서 사용자 지정 setter로 필드를 매핑 할 수 없습니다.

  7. 7

    클래스의 생성자는 지정된 유형에 적용 할 수 없습니다.

  8. 8

    laravel의 사용자 정의 클래스에서 호출 할 때 클래스를 찾을 수 없습니다.

  9. 9

    Kotlin의 특정 데이터 클래스에 대한 목록을 % Class %로 캐스팅 할 수 없습니다.

  10. 10

    특정 클래스에서만 사용할 수 있도록 Kotlin 인터페이스의 범위를 지정할 수 있습니까?

  11. 11

    클래스의 생성자는 지정된 유형에 적용 할 수 없습니다. 도움에 대한 희망

  12. 12

    사용자 지정 데이터는지도 출력에 알 수없는 데이터를 기록합니다.

  13. 13

    C #의 웹 서비스에서 사용자 지정 클래스를 반환 할 수 없습니다.

  14. 14

    각도 사용자 지정 지시문 링크 함수에서 속성 데이터에 액세스 할 수 없습니다.

  15. 15

    조각의 사용자 지정 어댑터에 목록을 설정할 수 없습니다.

  16. 16

    사용자 정의 목록보기 어댑터의 clear ()는 목록 데이터도 업데이트합니다.

  17. 17

    CakePHP : 사용자 정의 패키지에서 클래스를로드 할 수 없습니다.

  18. 18

    사용자 지정 배열을 데이터베이스에 저장할 수 없습니다.

  19. 19

    사용자 지정 어댑터의 항목을 업데이트 할 수 없습니다.

  20. 20

    Laravel 5.4 애플리케이션은 사용자 정의 디렉토리에 사용자 정의 클래스를로드 할 수 없습니다.

  21. 21

    Ksoap : 웹 메서드에 매개 변수로 사용자 정의 클래스를 전달할 때 예외를 직렬화 할 수 없습니다.

  22. 22

    사용자 정의 TableViewCell 클래스는 충돌없이 열거 형 값을 반환 할 수 없습니다.

  23. 23

    요청이 완료되기 전에 AJAX 요청의 데이터가 사용되지 않도록 보장하는 데 promise를 사용할 수 있습니까?

  24. 24

    파생 클래스에서 전용 멤버에 액세스 할 수 없습니다 (생성자가 기본 클래스에 정의되어 있어도)

  25. 25

    각도 2에서 사용자 지정 파이프를 사용하면 HTML로드시 데이터를로드 할 수 없습니다. 오류가 발생하여 정의되지 않은 속성을 읽을 수 없습니다.

  26. 26

    Terraform의 Azure VM에서 사용자 지정 데이터를 실행할 수 없습니다.

  27. 27

    xib에서 생성 된 사용자 정의 UITableView 셀에 대한 제약 조건을 설정할 수 없습니다. 모든 데이터가 크기 클래스의 변경에서 사라지기 때문에

  28. 28

    사용자는 PHP 양식을 사용하여 MySQL 데이터베이스의 정보를 업데이트 할 수 없습니다.

  29. 29

    C ++의 부모 클래스에서 자식 클래스로 데이터를 상속 할 수 없습니다.

뜨겁다태그

보관