2017-06-01 5 views
0

Ich habe dieses Android-Spiel entwickelt, und ich fragte mich warum, wenn ich diese TextView hinzufügen, meine App reagiert nicht mehr reagiert. Manche meiner Knöpfe drücken nicht, andere tun es und so weiter und so fort. Wenn ich dann TextView aus dem linearen Layout entferne, wird alles wieder normal. Bitte helfen Sie!Android App verlangsamt/wird unempfindlich, wenn TextView hinzugefügt wird

MainActivity

public class MainActivity extends AppCompatActivity { 

boolean started = false; 
boolean place; 
boolean[] tiles = new boolean[60]; 
int prevId = 0; 
int times = 0; 
ArrayList<Integer> IDs = new ArrayList<>(); 

Typeface face; 
TextView num; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    setContentView(R.layout.activity_main); 

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

    num = (TextView) findViewById(R.id.count); 

    face = Typeface.createFromAsset(getAssets(),"fonts/ZonaPro-Bold.otf"); 

    num.setTypeface(face); 
} 

public void press(View view) 
{ 
    place = false; 
    int id = view.getId() % 2131427400; 
    String test = "" + id; 

    ImageView img = (ImageView) view; 

    Log.d("TEST", test); 

    *****HERE, I HAVE LOTS OF LOGIC, AND IF-STATEMENTS INCLUDING SOME UNIMPORTANT VARIABLES***** 

    int abs = Math.abs(Math.abs(id - prevId)); 

    if(place && (abs == 1 || abs == 8) && tiles[id] == false && !(img.getTag().toString().equals("bound"))) 
    { 
     img.setImageResource(R.drawable.blue_sphere); 
     tiles[id] = true; 
     prevId = id; 
     times++; 
     IDs.add(id); 
     num.setText("" + times); 
    } 
} 

public void start(View view) 
{ 
    ImageView v = (ImageView) view; 

    if(!started) 
    { 
     started = true; 
     v.setImageResource(R.drawable.blue_sphere); 
     tiles[22] = true; 
     prevId = 22; 
     IDs.add(22); 
     num = (TextView) findViewById(R.id.count); 
     num.setText("0"); 
    } 
} 

public void undo(View view) 
{ 

    for(int ID : IDs) 
    { 
     ImageView re = (ImageView) findViewById(2131427400 + ID); 
     Log.d("TAG", re.getTag().toString()); 

     if(re.getTag().toString().equals("tile")) 
      re.setImageResource(R.drawable.gray_block); 
     else if(re.getTag().toString().equals("start")) 
     { 
      re.setImageResource(R.drawable.start_tile); 
      started = false; 
     } 
     else if(re.getTag().toString().equals("bound")) 
     { 
      re.setImageResource(R.drawable.newer_x); 
     } 
     else if(re.getTag().toString().equals("goal")) 
     { 
      re.setImageResource(R.drawable.new_goal); 
     } 
    } 

    Arrays.fill(tiles, false); 
    times = 0; 
} 
} 

Activity_Main.xml (alle die diesen Layouts innerhalb eines größeren, horizontalen linearen Layout)

<!-- 1 --> 
<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:orientation="vertical" 
    android:weightSum="9"> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_11" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile" /> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_12" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_13" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_14" 
     app:srcCompat="@drawable/newer_x" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="bound"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_15" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_16" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_17" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_18" 
     app:srcCompat="@drawable/start_tile" 
     android:layout_weight="1" 
     android:onClick="start" 
     android:tag="start" /> 

****this is the text view I'm having problems with**** 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/count" 
     android:layout_weight="1" 
     android:textColor="@android:color/black" 
     android:gravity="center" 
     android:textSize="30sp" /> 

****************************************************** 

</LinearLayout> 

<!-- 2 --> 
<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:orientation="vertical" 
    android:weightSum="9"> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_21" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile" /> 


    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_22" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_23" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_24" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_25" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_26" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_27" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_28" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

</LinearLayout> 

<!-- 3 --> 
<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:orientation="vertical" 
    android:weightSum="9"> 


    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_31" 
     app:srcCompat="@drawable/newer_x" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="bound" /> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_32" 
     app:srcCompat="@drawable/newer_x" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="bound" /> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_33" 
     app:srcCompat="@drawable/newer_x" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="bound" /> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_34" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_35" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_36" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_37" 
     app:srcCompat="@drawable/newer_x" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="bound"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_38" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

</LinearLayout> 

<!-- 4 --> 
<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:orientation="vertical" 
    android:weightSum="9"> 


    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_41" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile" /> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_42" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_43" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_44" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_45" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_46" 
     app:srcCompat="@drawable/newer_x" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="bound"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_47" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_48" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

</LinearLayout> 

<!-- 5 --> 
<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:orientation="vertical" 
    android:weightSum="9"> 


    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_51" 
     app:srcCompat="@drawable/new_goal" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="goal" /> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_52" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_53" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_54" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_55" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_56" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_57" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:id="@+id/_58" 
     app:srcCompat="@drawable/gray_block" 
     android:layout_weight="1" 
     android:onClick="press" 
     android:tag="tile"/> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:id="@+id/undo" 
     app:srcCompat="@drawable/newer_undo" 
     android:layout_weight="1" 
     android:onClick="undo" 
     android:tag="undo"/> 

</LinearLayout> 

Es tut mir leid für so viel Code zu veröffentlichen, aber ich habe keine Ahnung, warum das passiert, und ich hoffe, dass das Problem irgendwo in diesen Dateien ist.

Antwort

0

Das Problem ist in Ihrer start(View view) onClick-Methode, Sie beziehen sich auf die TextView, die bereits in onCreate(Bundle obj) instanziiert ist, bitte versuchen Sie es zu entfernen. Und ersetzen Sie fill_parent durch match_parent.

0

Kann sein Problem mit unter Leitung

//TextView num; 

Erste uncomment dies.

Dann nicht unterhalb der Linie wieder erklären Sie (bereits in onCreate erklären)

num = (TextView) findViewById(R.id.count); 

es aus onStart entfernen().

+0

Leider tritt das Problem immer noch auf. Buchstäblich die Tatsache, dass diese TextView dort existiert, wo sie jetzt ist, ist das Problem, aber ich weiß nicht, was ich dagegen tun soll. – TheFiveHundredYears

Verwandte Themen