2015-11-01 91 views
1

MainActivity.java没有TextViews创建

public class MainActivity extends AppCompatActivity { 
double MOA; 
TextView turretClicks; 
boolean noMOA; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    turretClicks = (TextView) findViewById(R.id.turretClicks); 



    // Create an anonymous implementation of OnClickListener 
    View.OnClickListener btnClickCalc = new View.OnClickListener() { 


     @Override 
     public void onClick(View v) { 
      double clicks = (MOA * 4); 
      String toText = Double.toString(clicks); 
      turretClicks.setText(toText); 



      EditText range = (EditText) findViewById(R.id.rangeEntry); 
      String stringRange = range.getText().toString(); 
      int finalRange = Integer.parseInt(stringRange); 
      if (finalRange <= 200) { 
       MOA = 0; 
      } 
      if (finalRange > 200 && finalRange <= 225) { 
       MOA = .5; 
      } 
      if (finalRange > 225 && finalRange <= 250) { 
       MOA = 1; 
      } 
      if (finalRange > 250 && finalRange <= 275) { 
       MOA = 1.65; 
      } 
      if (finalRange > 275 && finalRange <= 300) { 
       MOA = 2.25; 
      } 
      if (finalRange > 300 && finalRange <= 325) { 
       MOA = 2.8; 
      } 
      if (finalRange > 325 && finalRange <= 350) { 
       MOA = 3.5; 
      } 
      if (finalRange > 350 && finalRange <= 375) { 
       MOA = 4.0; 
      } 
      if (finalRange > 375 && finalRange <= 400) { 
       MOA = 4.75; 
      } 
      if (finalRange > 400 && finalRange <= 425) { 
       MOA = 5.50; 
      } 
      if (finalRange > 425 && finalRange <= 450) { 
       MOA = 6.25; 
      } 
      if (finalRange > 450 && finalRange <= 475) { 
       MOA = 7.0; 
      } 
      if (finalRange > 475 && finalRange <= 500) { 
       MOA = 7.5; 
      } 
      if (finalRange > 500 && finalRange <= 525) { 
       MOA = 8.25; 
      } 
      if (finalRange > 525 && finalRange <= 550) { 
       MOA = 9.0; 
      } 
      if (finalRange > 550 && finalRange <= 575) { 
       MOA = 9.75; 
      } 
      if (finalRange > 575 && finalRange <= 600) { 
       MOA = 10.5; 
      } 
      if (finalRange > 600 && finalRange <= 625) { 
       MOA = 11.5; 
      } 
      if (finalRange > 625 && finalRange <= 650) { 
       MOA = 12.25; 
      } 
      if (finalRange > 650 && finalRange <= 675) { 
       MOA = 13; 
      } 
      if (finalRange > 675 && finalRange <= 700) { 
       MOA = 14; 
      } 
      if (finalRange > 700) { 
       noMOA = true; 
      } 

     } 
    }; 


    // Capture our button from layout 
    Button button = (Button) findViewById(R.id.btnClickCalc); 
    // Register the onClick listener with the implementation above 
    button.setOnClickListener(btnClickCalc); 



    final View.OnClickListener btnRecordRange = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      EditText range = (EditText) findViewById(R.id.rangeEntry); 

      final String recordableClicks = turretClicks.toString(); 
      final String recordableRange = range.toString(); 

      try { 
       OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("recordings.csv", Context.MODE_PRIVATE)); 
       outputStreamWriter.write("Clicks" + " " + recordableClicks + "," + " " + "@Range" + recordableRange + "\n"); 
       outputStreamWriter.close(); 
      } 
      catch (IOException e) { 
       Log.e("Exception", "File write failed: " + e.toString()); 
      } 
      Toast.makeText(MainActivity.this, "  Clicks @ Range" + "\n" + "Successfully Recorded", Toast.LENGTH_SHORT).show(); 
     } 

    }; 

    // Capture our button from layout 
    Button recordRange = (Button) findViewById(R.id.btnRecordRange); 
    // Register the onClick listener with the implementation above 
    recordRange.setOnClickListener(btnRecordRange); 
    // Create an anonymous implementation of OnClickListener 



    final View.OnClickListener btnToRecorded = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(MainActivity.this,RangeRecords.class)); 

     } 

    }; 

    // Capture our button from layout 
    Button showRecords = (Button) findViewById(R.id.btnToRecorded); 
    // Register the onClick listener with the implementation above 
    showRecords.setOnClickListener(btnToRecorded); 
    // Create an anonymous implementation of OnClickListener 

} 

}

RangeRecords.java

public class RangeRecords extends ListActivity { 
public static TextView ListItems; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.content_recorded_ranges); 
    readFromFile("recordings.csv"); 
} 


    public String readFromFile(String fname) { 
    List<String> rangeList = new ArrayList(); 
    String ret = ""; 

    try { 
     InputStream inputStream = openFileInput(fname); 

     if (inputStream != null) { 
      InputStreamReader inputStreamReader = new InputStreamReader(inputStream); 
      BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
      String receiveString; 
      StringBuilder stringBuilder = new StringBuilder(); 

      while ((receiveString = bufferedReader.readLine()) != null) { 
       stringBuilder.append(receiveString); 
      } 

      rangeList.add(stringBuilder.toString()); 
      View linearLayout = findViewById(R.id.linLay); 
      for (int i = 0; i < rangeList.size(); i++) { 
       TextView value = new TextView(this); 
       value.setText(i); 
       value.setId(i); 
       value.setTextSize(20); 
       value.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
       ((LinearLayout) linearLayout).addView(value); 
      } 
     } 

     inputStream.close(); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return ret; 
} 

} 

content_recorded_ranges.xml

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" 
    android:id="@+id/linLay"> 

    <ListView android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 

</LinearLayout> 

当我我的手机上运行这个程序,它完美的第一项活动。当我点击按钮切换到第二个活动,它应该在TextView中显示我录制的数据时,屏幕只是白色。我可以在顶部看到安卓栏,在那里我可以看到我的服务和电池寿命等,但它甚至有点模糊,好像有什么东西放在顶部。

我有ListView的唯一原因是因为编译器要求我在代码中拥有它。我不想/需要它,但显然编译器认为我这样做。

我在这里做错了什么?我想在第二项活动中显示记录的数据......因此,我们计算炮塔上的点击数,射击步枪,并将这些数据记录到档案中,如果这是一个好的镜头,那么我们所要做的就是来返回到第二个活动,并查看我们之前拍摄的数据在不同范围内记录的数据。

有人吗?在这一整天。

谢谢!

编辑

这是现在的代码:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto"  
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:showIn="@layout/activity_recorded_ranges" 
tools:context="lol2dubs.stevemoa.recorded_ranges" 
android:background="#fefefe"> 

<LinearLayout 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_centerVertical="true" 
android:layout_centerHorizontal="true" 
android:id="@+id/linLay"> 
</LinearLayout> 
</RelativeLayout> 

RangeRecords.java

public class RangeRecords extends AppCompatActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.content_recorded_ranges); 
    readFromFile("recordings.csv"); 
} 


    public String readFromFile(String fname) { 
    List<String> rangeList = new ArrayList(); 
    String ret = ""; 

    try { 
     InputStream inputStream = openFileInput(fname); 

     if (inputStream != null) { 
      InputStreamReader inputStreamReader = new InputStreamReader(inputStream); 
      BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
      String receiveString; 
      StringBuilder stringBuilder = new StringBuilder(); 

      while ((receiveString = bufferedReader.readLine()) != null) { 
       stringBuilder.append(receiveString); 
      } 

      rangeList.add(stringBuilder.toString()); 
      View linearLayout = findViewById(R.id.linLay); 
      for (int i = 0; i < rangeList.size(); i++) { 
       TextView value = new TextView(this); 
       value.setText(i); 
       value.setId(i); 
       value.setTextSize(20); 
       value.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
       ((LinearLayout) linearLayout).addView(value); 
      } 
     } 

     inputStream.close(); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return ret; 
} 

} 

同样的事情取出后仍发生从XML扩展ListActivity和ListView控件。

回答

0

因为您正在扩展ListActivity,因此需要ListView。另外,ListView会阻止你的TextView,所以你看不到它。

但是,您应该在使用ListView时使用Stick,因为您使用动态数字显示多个文本视图。有关教程,请参阅this

如果你不想使用它,然后在你的布局

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" 
    android:id="@+id/linLay"> 

</LinearLayout> 
+0

呀改变

public class RangeRecords extends ListActivity 

public class RangeRecords extends AppCompatActivity 

删除的ListView。我是个白痴。谢谢。 – lol2dubs

+0

清理项目解决了这个问题。所以现在我在编译时出现这个错误: 错误:执行失败的任务':app:dexDebug'。 > com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.8.0_60 \ bin \ java.exe''已完成非零退出值2 – lol2dubs

+0

因此,您的解决方案有意义,但无法正常工作。我删除了ListView并更改了活动,第二个活动仍然是纯白的,Android栏仍然看起来好像被某些东西所覆盖。将更新顶部的新代码。 – lol2dubs