나는 주 활동에 9 개의 버튼이있어 클릭시 특정 조각으로 이동합니다. 하지만 메인 스레드에서 무거운 것입니다. 어떻게 코드 크기를 줄일 수 있습니다. 내가 대신 여기에 9 개 버튼 을 정의하는 스위치를 사용하면 주요 활동 코드Android 주요 활동이 너무 느림
MainActivity 응용 프로그램이 느려 할 이유
package com.gowarbaam.baluchistannationalparty;
import android.content.Intent;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.gowarbaam.baluchistannationalparty.Fragments.AboutApp;
import com.gowarbaam.baluchistannationalparty.Fragments.AboutParty;
import com.gowarbaam.baluchistannationalparty.Fragments.Aims;
import com.gowarbaam.baluchistannationalparty.Fragments.CityList;
import com.gowarbaam.baluchistannationalparty.Fragments.Events;
import com.gowarbaam.baluchistannationalparty.Fragments.History;
import com.gowarbaam.baluchistannationalparty.Fragments.Martyrs;
import com.gowarbaam.baluchistannationalparty.Fragments.TwitterMain;
public class MainActivity extends AppCompatActivity {
FragmentManager mFragmentManager;
FragmentTransaction mFragmentTransaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mFragmentManager = getSupportFragmentManager();
mFragmentTransaction = mFragmentManager.beginTransaction();
final Button HistoryBtn = (Button) findViewById(R.id.historyBtn);
HistoryBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView, new History()).commit();
}
});
final Button AimsBtn = (Button) findViewById(R.id.aimsBtn);
AimsBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView, new Aims()).commit();
}
});
final Button MembersBtn = (Button) findViewById(R.id.membersBtn);
MembersBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView, new CityList()).commit();
}
});
final Button PhotoBtn = (Button) findViewById(R.id.martyrsBtn);
PhotoBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView, new Martyrs()).commit();
}
});
final Button TweetBtn = (Button) findViewById(R.id.tweetsBtn);
TweetBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView, new TwitterMain()).commit();
}
});
final Button AboutParty = (Button) findViewById(R.id.aboutParty);
AboutParty.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView, new AboutParty()).commit();
}
});
final Button b = (Button) findViewById(R.id.eventsBtn);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView, new Events()).commit();
}
});
final Button AboutApp = (Button) findViewById(R.id.aboutApp);
AboutApp.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView, new AboutApp()).commit();
}
});
}
@Override
public void onBackPressed() {
Intent myIntent = new Intent(this, MainActivity.class);
this.startActivity(myIntent);
}
}
당신은 어떤 큰 이미지를 가지고 마십시오 MainActivity에? – Knossos
예 스위치를 더 잘 사용할 수 있습니다. 그러나 코드의 줄 수가 적고 느린 이유는 무엇입니까? Knossos가 묻는 것처럼 레이아웃에 이미지가 있습니까? – YLS
코드가 그다지 지연되지 않는 것 같습니다. 그리고 솔직히 말해서, onBackPressed 메서드는 당신이하지 말아야 할 일을하고 있습니다. – Ricardo