2012-05-20 5 views
1

내 앱이 풋볼 팀 이름 목록을 설정하고 텍스트 뷰를 클릭하면 해당 클래스가 의도 메소드에서 호출됩니다.새 액티비티를 시작하는 동안 진행 대화 상자가 표시됩니다.

약 200kb 인 xml 레이아웃 파일을로드하는 클래스가 있습니다. xml 파일이 백그라운드에서로드되는 동안 진행 /로드 아이콘을 구현하고 싶습니다.

이 사이트를 살펴본 후 ASynchTask에 대해 읽었지만 doInBackground() 메소드에 작성해야하는 코드를 알지 못합니다.

내가 초기화 얻을 textviews의 배열을 가지고 있고, 클릭하면 각 텍스트 뷰에 할당 된 클래스 이름의 배열 :

여기 내 클래스입니다.

아무도 도와 줄 수 있습니까? 나는 멍청이야.

사용자가 앱을 처음 클릭 할 때 백그라운드에서 이러한 모든 클래스를로드하는 방법이 있습니까?

공용 클래스 전송 당신은 잠시 동안 진행 표시 줄을 잊고 텍스트 뷰의 배열을 사용하여 다시 생각한다 활동 {

public final int[] teams = { R.id.ars, R.id.ast, R.id.bir, R.id.bla, 
     R.id.blp, R.id.bol, R.id.che, R.id.eve, R.id.ful, R.id.hul, 
     R.id.lee, R.id.liv, R.id.mid, R.id.mnc, R.id.mnu, R.id.nor, 
     R.id.nwu, R.id.por, R.id.qpr, R.id.sto, R.id.sun, R.id.swa, 
     R.id.tot, R.id.wes, R.id.wig, R.id.wol }; 

public final String[] teamnames = { "ars", "ast", "bir", "bla", "blp", 
     "bol", "che", "eve", "ful", "hul", "lee", "liv", "mid", "mnc", 
     "mnu", "nor", "nwu", "por", "qpr", "sto", "sun", "swa", "tot", 
     "wes", "wig", "wol" }; 

TextView tv; 
Class classname; 
String prefix = "ttj.android.ft.teams."; 

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

    for (int i = 0; i < teams.length; i++) { 
     final int j = i; 
     tv = (TextView) findViewById(teams[i]); 
     tv.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       try { 
        classname = Class.forName(prefix + teamnames[j]); 
        Intent open = new Intent(Transfers.this, classname); 
        startActivity(open); 
       } catch (ClassNotFoundException e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 
    ; 
} 
+0

내 대답이 될 수 있습니다. (http://stackoverflow.com/a/9078502/996493) – Lucifer

+0

@ 루시퍼 감사합니다. 나는 당신의 해결책을 보았다. 이 코드를 수업에 어떻게 적용할까요? 어떤 도움을 주시면 감사하겠습니다. 또한 답장을 답장으로 옮기십시오. 귀하의 지식을 높이 평가할 수 있습니다! :-) – tiptopjat

+0

다음 활동을 호출하기 시작할 때 ProgressDialog를 표시하고 백그라운드 프로세스를 수행하며 처리기에서이를 무시하는 것은 매우 쉽습니다. – Lucifer

답변

2

을 확장합니다.

어떻게 화면에 표시했는지 알 수는 없지만 어떤 종류의 AdapterView (예 : ListView ..)으로 전환 한 다음 모든 팀과 함께 어댑터를로드해야합니다. 이렇게하면 생성중인 실제 View 객체의 총 수가 크게 줄어들어로드 시간이 일부 단축됩니다.

+0

감사합니다. 나는이 코드에 너무 많은 시간을 투자하여 논리를 가지고 놀았습니다! 내 Java 기술은 말할 것도없이 기본적입니다. Lucifer가 제안한 솔루션을 구현하는 방법을 알아 내려고 노력 중입니다. – tiptopjat

관련 문제