我正在开发一个应用程序,但我遇到了一个问题...我无法访问if语句之外的数组...这是我的代码:
public class MainActivity extends Activity {
TextView textLat;
TextView textLong;
TextView textChange;
TextView testid;
float gpsSpeed = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textLat = (TextView)findViewById(R.id.textLat);
textLong = (TextView)findViewById(R.id.textLong);
textChange = (TextView)findViewById(R.id.textChange);
testid = (TextView)findViewById(R.id.testid);
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
}
@SuppressWarnings("unchecked")
public static void main(String argv[]) {
try {
File fXmlFile = new File("/Users/mkyong/staff.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
//optional, but recommended
//read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("station");
int rows = nList.getLength();
int cols = 9;
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
String[][]options = new String[cols][rows];
options[0][0] = eElement.getElementsByTagName("name").item(0).getTextContent();
options[1][0] = eElement.getElementsByTagName("code").item(0).getTextContent();
options[2][0] = eElement.getElementsByTagName("lat").item(0).getTextContent();
options[3][0] = eElement.getElementsByTagName("long").item(0).getTextContent();
options[4][0] = eElement.getElementsByTagName("longlat").item(0).getTextContent();
options[5][0] = eElement.getElementsByTagName("uziadvies").item(0).getTextContent();
options[6][0] = eElement.getElementsByTagName("bijzonderheden").item(0).getTextContent();
options[7][0] = eElement.getElementsByTagName("ref").item(0).getTextContent();
options[8][0] = eElement.getElementsByTagName("groterkleiner").item(0).getTextContent();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
class mylocationlistener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
if(location != null)
{
double pLong = location.getLongitude();
double pLat = location.getLatitude();
gpsSpeed = ((location.getSpeed()*3600)/1000);
textLat.setText(Double.toString(pLat));
textLong.setText("jo");
double compareLatCoords = 51.704704;
double compareLongCoords = 4.854369;
testid.setText(Float.toString(gpsSpeed));
if (pLat <= compareLatCoords)
{
textChange.setText("Je bent net de bedaulxstraat doorgereden");
}
if (pLong >= compareLongCoords)
{
textChange.setText("U bent door een andere straat gereden dan daarnet.");
}
}
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
这是关于数组:options[i][j]我不能在if语句之外访问...我已经为此工作了两天,但我找不到解决方案...
编辑:感谢所有的答案,但是当我尝试访问public val onLocationChanged(位置位置){...}
中的变量(例如:选项[1][0]
)。我得到错误:选项无法解析为变量。
你好,肯尼斯
如果您在if语句中定义任何变量,它将是局部变量
-
String[][]options = new String[cols][rows];
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
...
}
在< code>for-loop外部声明array < code > String[][]options ,并在必要时定义它。
String[][]options = null;
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
options = new String[cols][rows];
...
问题内容: 目前无法打破此循环。如果要在此列表中找不到变量,我想破坏它,以便它可以移动另外两个循环。它期望在循环的顶部有一个缩进的块,但是如果更改循环的开头或开头的位置,它将无法正常工作。救命! 问题答案: 正如人们在对您的问题的评论中提到的那样,您需要分别打破每个循环,仅停止其所在的循环 两个 循环都需要这样做 如果您也想打破while循环,那么您也可以添加该循环。
我有一个380行20列的表格。我想从该表中删除符合特定条件的行。 为了澄清问题,假设我有以下列表: 我想删除在列表中找到姓名的所有人员的数据。 例如,假设我的数据如下所示: 我想删除、和的数据。所以输出应该是: 我的代码正在运行,但数据没有从我的原始数据中删除。当我打开新的测试.txt文件时,我可以看到数据没有被删除。 我可以肯定错误在< code > if data[row][0]= =(I f
问题内容: 现在,父级for循环()在第一个findOne触发之前完成,因此,这仅循环通过repliesIDsArray..asynchronous。的最后一个元素。 此代码集的承诺版本的正确语法是什么?Promisification的新手,想知道如何开始Promisify +遍历数组+解释if语句。 蓝鸟是必需的,并且被调用。 问题答案: 正如本杰明所说,不要使用循环,而应使用(或) 在此处查看
if语句 (实际上是if表达式) OCaml有两种if语句: if boolean-condition then expression if boolean-condition then expression else other-expression 不同于传统的语言,if语句是表达式。它们更类似于C类语言中的三元操作符?: 而不是你所熟悉的if语句。 下面是if语句的简单例子: # le
问题内容: 我知道如何在单独的行上同时使用for循环和if语句,例如: 而且我知道当语句很简单时,我可以使用列表推导来组合这些内容,例如: 但是我找不到一个很好的例子,可以在任何地方(复制和学习)演示一组复杂的命令(不仅仅是“ print x”),这些命令是在for循环和某些if语句组合后发生的。我期望的是: 这不是python应该工作的方式吗? 问题答案: 您可以使用以下生成器表达式: