我遇到问题[从数据库]将文本视图结果分配给新变量。 文本视图从数据库中检索数据没有问题。
现在问题是我需要链接值" 4"在文本视图中的新变量。然后使用按钮功能进行下一个活动。
public class MainActivity extends Activity {
TextView name1;
TextView rating1;
TextView sourse1;
Button Btngetdata;
int ratingvalue;
// URL to get contacts JSON
private static String url = "http://lawrencetucksoon.netau.net/json_get_data.php";
// JSON Node names
private static final String TAG_APPINFO = "appinfo";
private static final String TAG_NAME = "name";
//private static final String TAG_UPDATE_PATCH = "update patch";
//private static final String TAG_PUBLISH_YEAR = "publish year";
private static final String TAG_RATING = "rating";
private static final String TAG_SOURSE = "sourse";
JSONArray app = null;
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name1 = (TextView) findViewById(R.id.name);
rating1 = (TextView) findViewById(R.id.rating);
sourse1 = (TextView) findViewById(R.id.sourse);
Btngetdata=(Button)findViewById(R.id.btn1);
Btngetdata = (Button)findViewById(R.id.btn1);
Btngetdata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
System.out.println(ratingvalue);
}
});
}
public void selectapp (View view)
{
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId())
{
case R.id.radio_365:
if (checked)
{
new JSONParse().execute();
if((Integer.parseInt(rating1.getText().toString()) ) <=3)
{
ratingvalue =0;
}
else
{
ratingvalue = 1;
}
}
break;
case R.id.radio_candy: //if (R.id.rating > 3){
// ratingvalue = 0;
if (checked)
{
new JSONParse1().execute();
}
// else
// {
// ratingvalue = 1;
// }
// }
break;
case R.id.radio_FB:
if (checked)
{
new JSONParse().execute();
}
break;
case R.id.radio_summoner:
if (checked)
{
new JSONParse1().execute();
}
break;
}
}
/**
* Async task class to get json by making HTTP call
*/
private class JSONParse extends AsyncTask<Void, Void, JSONObject> {
ProgressDialog pDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
name1 = (TextView) findViewById(R.id.name);
rating1 = (TextView) findViewById(R.id.rating);
sourse1 = (TextView) findViewById(R.id.sourse);
// Showing progress dialog
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Getting Data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected JSONObject doInBackground(Void... args) {
// Creating service handler class instance
JSONParser jParser = new JSONParser();
// Getting JSON from URL
JSONObject json = jParser.getJSONFromUrl(url);
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
//super.onPostExecute(result);
// Dismiss the progress dialog
// if (pDialog.isShowing())
pDialog.dismiss();
/**
* Updating parsed JSON data into ListView
* */
try {
// Getting JSON Array
app = json.getJSONArray(TAG_APPINFO);
JSONObject c = app.getJSONObject(0);
// Storing JSON item in a Variable
String name = c.getString(TAG_NAME);
String rating = c.getString(TAG_RATING);
String sourse = c.getString(TAG_SOURSE);
//Set JSON Data in TextView
name1.setText(name);
rating1.setText(rating);
sourse1.setText(sourse);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
private class JSONParse1 extends AsyncTask<Void, Void, JSONObject> {
ProgressDialog pDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
name1 = (TextView) findViewById(R.id.name);
rating1 = (TextView) findViewById(R.id.rating);
sourse1 = (TextView) findViewById(R.id.sourse);
// Showing progress dialog
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Getting Data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected JSONObject doInBackground(Void... args) {
// Creating service handler class instance
JSONParser jParser = new JSONParser();
// Getting JSON from URL
JSONObject json = jParser.getJSONFromUrl(url);
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
//super.onPostExecute(result);
// Dismiss the progress dialog
// if (pDialog.isShowing())
pDialog.dismiss();
/**
* Updating parsed JSON data into ListView
* */
try {
// Getting JSON Array
app = json.getJSONArray(TAG_APPINFO);
JSONObject c = app.getJSONObject(1);
// Storing JSON item in a Variable
String name = c.getString(TAG_NAME);
String rating = c.getString(TAG_RATING);
String sourse = c.getString(TAG_SOURSE);
//Set JSON Data in TextView
name1.setText(name);
rating1.setText(rating);
sourse1.setText(sourse);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
在第一个活动中,您需要将参数传递给intent
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("param", myTextView.getText().toString());
startActivity(intent);
然后在第二个活动onCreate
Intent intent = getIntent()
String value = intent.getStringExtra("param", null);
答案 1 :(得分:0)
你可以通过多种方式做到这一点。第一个是声明静态变量并将其设为 public 。然后你可以从其他活动中访问变量。例如,如果活动<{1>} A ,并且想要访问活动TextView
中的值。您可以将变量声明为
B
然后根据需要设置变量的值。之后,当启动 B 活动时,访问所需的变量。例如
public static String someVariable;
虽然这种方法很简单但不被认为是一个不错的选择。好的选择是以意图发送值。对于意图,请参阅here