Java 将数据从一个活动发送到另一个活动
嗨,我是新来的,首先我想为我的语言道歉。我想创建我的第一个安卓应用程序,现在我正在为一些问题挣扎。 MainActivity,表示包含两个按钮和微调器的主屏幕。在微调器中,用户可以选择一个文本文件,选择后应触发微调器活动(打开文本文件的屏幕)。我发现问题,因为并非微调器中的每条记录都会触发我想要的文本文件的活动(一个我想要的触发器文件和另一个文本视图为空的触发器屏幕)Java 将数据从一个活动发送到另一个活动,java,android,Java,Android,嗨,我是新来的,首先我想为我的语言道歉。我想创建我的第一个安卓应用程序,现在我正在为一些问题挣扎。 MainActivity,表示包含两个按钮和微调器的主屏幕。在微调器中,用户可以选择一个文本文件,选择后应触发微调器活动(打开文本文件的屏幕)。我发现问题,因为并非微调器中的每条记录都会触发我想要的文本文件的活动(一个我想要的触发器文件和另一个文本视图为空的触发器屏幕) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/textView2"
android:layout_width="199dp"
android:layout_height="89dp"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:text="nie dziala" />
<TextView
android:id="@+id/proximityTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.0"
android:textAppearance="?android:attr/textAppearanceLarge"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
有人能看一下这个并帮我找到bug吗?谢谢,位置从0开始,我想问题在于条件, 你可以这样写-
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
Intent intent = new Intent(MainActivity.this, SpinnerActivity.class);
intent.putExtra("txt", pos + 1);
startActivity(intent);
}
public void未选中(AdapterView父视图、视图、,
内部位置,长id){
意向意向=新意向(MainActivity.this、spinneActivity.class);
意图。额外输入(“txt”,位置+1);
星触觉(意向);
}
您的问题到底是什么?有任何例外情况吗?可能的重复情况需要将intent.putExtra(“txt”,“pos”)添加到您选择的实现中的每个intent中“if(pos==1)”两次,请注意使用开关将更好。好的,我改进了这些东西。我的主要问题是我无法读取我想要的文件。这已得到修复,但我还有一个问题,我无法从第一个微调器记录触发微调器活动。我有三个记录:猫、狗和鼠标,当我启动应用程序时,猫是default record但我无法选择cat打开对我有效的文件,但我有另一个问题-我无法从我的微调器中选择第一条记录填充微调器和回调方法ONIMSELECTED()时,会自动选择第一条记录仅当新位置与前一位置不同时才调用。请查看。
package com.example.myapp;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class SpinnerActivity extends ActionBarActivity implements SensorEventListener {
TextView proxText;
SensorManager sm;
Sensor proxSensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner);
//proximitymeter
sm=(SensorManager)getSystemService(SENSOR_SERVICE);
proxSensor=sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);
proxText=(TextView)findViewById(R.id.proximityTextView);
sm.registerListener(this,proxSensor,SensorManager.SENSOR_DELAY_NORMAL);
Intent intent3 = getIntent();
int value = intent3.getIntExtra("txt", 0);
//finish();
if (value==1)
{
open("przepis1.txt");
}
if (value==2)
{
open("przepis2.txt");
}
if (value==3)
{
open("przepis3.txt");
}
}
public void open(String name){
File sdcard = Environment.getExternalStorageDirectory();
//Get the text file
File file = new File(sdcard,name);
//Read text from file
StringBuilder text = new StringBuilder();
try {
BufferedReader bufor = new BufferedReader(new FileReader(file));
String line;
while ((line = bufor.readLine()) != null) {
text.append(line);
text.append('\n');
}
bufor.close();
}
catch (IOException e) {
//You'll need to add proper error handling here
}
//Find the view by its id
TextView tv = (TextView)findViewById(R.id.textView2);
//Set the text
tv.setText(text);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.spinner, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
//proxText.setText(String.valueOf(event.values[0]));
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
}
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
Intent intent = new Intent(MainActivity.this, SpinnerActivity.class);
intent.putExtra("txt", pos + 1);
startActivity(intent);
}