【问题标题】:How to get data from SQL Database using bundles, Android如何使用捆绑包从 SQL 数据库获取数据,Android
【发布时间】:2013-06-23 03:07:47
【问题描述】:

所以基本上我有 ListView 和第二个活动,其中有两个 EditText 保存数据(有点像笔记应用程序)。 ListView 显示它们已创建,但是当我单击 ListView 中的一个项目时,它显示一个没有数据的空白第二个活动。我已经尝试了多种使用捆绑包的方法来解决这个问题,但到目前为止它仍然没有显示任何内容。

这是我目前的第一个活动(ListView 活动)...

    List.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            Intent launchActivity = new Intent(MainActivityPlanes.this, MainActivityPaper.class);

            public static final String keyname = "android.application.project.planes.MainActivityPlanes.Extra_keyname1";
            Bundle b = new Bundle();
            String keyname = title1.getText().toString();
            String key = text1.getText().toString(); 
            b.putString("Extra__keyname", keyname);
            b.putString("Extra__key", key);
            launchActivity.putExtras(b);

            startActivity(launchActivity);

这是我的第二个活动(包含两个 TextView 的活动)中的第二段代码...

    Intent launchActvity = getIntent();

    Bundle b = launchActvity.getExtras();

    String keyname = launchActvity.getStringExtra(MainActivityPlanes.Extra_keyname);
    String key = launchActvity.getStringExtra(MainActivityPlanes.Extra_key);

    TextView title1 = (TextView)findViewById(R.id.editText3);
    TextView text1 = (TextView)findViewById(R.id.editText1);

    title1.setText("keyname");
    text1.setText("key");

关于如何解决这个问题的任何想法?

第一个活动

 package android.application.project.planes;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
 import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

 public class MainActivityPlanes extends Activity {

Button Add;
ListView List;

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main_activity_planes);

    Add = (Button) findViewById(R.id.button1);
    List = (ListView) findViewById(R.id.listView1);

    Add.setOnClickListener(new OnClickListener () {

        public void onClick (View v) {
            Intent intent = new Intent (v.getContext(), MainActivityPaper.class);
            startActivityForResult(intent, 0);
        }

    });

    List.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            Intent launchActivity = new Intent(MainActivityPlanes.this, MainActivityPaper.class);

             Bundle b = new Bundle();
             String keyname = title1.getText().toString();
             String key = text1.getText().toString(); 
             b.putString("Extra__keyname", keyname);
             b.putString("Extra__key", key);
             launchActivity.putExtras(b);

             startActivity(launchActivity);

        }

    });

    MainActivityChampagne info = new MainActivityChampagne(this);       
    info.open();        
    ArrayList<String> data = info.getData();
    info.close();
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data);
    List.setAdapter(arrayAdapter);

}

}

第二个活动

package android.application.project.planes;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;

public class MainActivityPaper extends Activity implements OnClickListener {

TextView text1, title1;
Button save1, update1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main_activity_paper);

    text1 = (TextView) findViewById(R.id.editText1);
    title1 = (TextView) findViewById(R.id.editText3);
    save1 = (Button) findViewById(R.id.button3);
    update1 = (Button) findViewById(R.id.button5);

    save1.setOnClickListener(this);
    update1.setOnClickListener(this);

}

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub

    switch (arg0.getId()) {
    case R.id.button3:

        String titles = title1.getText().toString();
        String notes = text1.getText().toString();

        MainActivityChampagne entry = new MainActivityChampagne(MainActivityPaper.this);
        entry.open();
        entry.createEntry(titles, notes);
        entry.close();

        break;

    case R.id.button5:

        String thetitles = title1.getText().toString();
        String thenotes = text1.getText().toString();

        MainActivityChampagne up = new MainActivityChampagne(MainActivityPaper.this);
        up.open();
        up.updateEntry(thetitles, thenotes);
        up.close();

        break;

    }

    Intent launchActvity = getIntent();

    Bundle b = launchActvity.getExtras();

    String keyname = launchActvity.getStringExtra("keyname");
    String key = launchActvity.getStringExtra("key");

    TextView title1 = (TextView)findViewById(R.id.editText3);
    TextView text1 = (TextView)findViewById(R.id.editText1);

    title1.setText("keyname");
    text1.setText("key");

}

}

我的第三个活动(SQL 数据库活动)...

 package android.application.project.planes;

 import java.util.ArrayList;

 import android.app.Activity;
 import android.content.ContentValues;
 import android.content.Context;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;

public class MainActivityChampagne extends Activity {

public static final String KEY_NAME = "title";
public static final String KEY_NOTES = "lastcall";

private static final String DATABASE_NAME = "Champagnedb";
private static final String DATABASE_TABLE = "champagneTable";
private static final int DATABASE_VERSION = 1;

private DbHelper ourHelper;
private final Context ourContext;
private SQLiteDatabase ourDatabase;

private static class DbHelper extends SQLiteOpenHelper{

    public DbHelper(Context context){
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        // TODO Auto-generated constructor stub

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub\
        db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
        KEY_NAME + " TEXT NOT NULL);"
        );

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("DROP TABLE IF EXIST " + DATABASE_TABLE);
        onCreate(db);

    }

}

public MainActivityChampagne(Context c){
    ourContext = c;

}

public MainActivityChampagne open(){
    ourHelper = new DbHelper(ourContext);
    ourDatabase = ourHelper.getWritableDatabase();
    return this;

}

public void close(){
    ourHelper.close();

}

public long createEntry(String titles, String notes) {
    // TODO Auto-generated method stub
    ContentValues cv = new ContentValues();
    cv.put(KEY_NAME, titles);
    return ourDatabase.insert(DATABASE_TABLE, null, cv);

}

public ArrayList<String> getData() {
    //TODO Auto-generated method stub
    String[] columns = new String[] { KEY_NAME };
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    String result = "";

    int iNotes = c.getColumnIndex(KEY_NAME);

    ArrayList<String> string_array = new ArrayList<String>();
    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext())

    {

        result = c.getString (iNotes) + "\n";
        string_array.add(result);

        }

    return string_array;

}

public void updateEntry(String thetitles, String thenotes) {
    // TODO Auto-generated method stub
    ContentValues cvUpdate = new ContentValues();
    cvUpdate.put(KEY_NAME, thetitles);
    cvUpdate.put(KEY_NOTES, thenotes);
    ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "=" + thetitles + KEY_NOTES + "=" + thenotes, null);

}

 }

LogCat

06-23 15:42:19.710: E/StrictMode(638):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
06-23 15:42:19.710: E/StrictMode(638):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
06-23 15:42:19.710: E/StrictMode(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
06-23 15:42:19.710: E/StrictMode(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
06-23 15:42:19.710: E/StrictMode(638):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
06-23 15:42:19.710: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
06-23 15:42:19.710: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
06-23 15:42:19.710: E/StrictMode(638):  at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
06-23 15:42:19.710: E/StrictMode(638):  at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
06-23 15:42:19.710: E/StrictMode(638):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
06-23 15:42:19.710: E/StrictMode(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
06-23 15:42:19.710: E/StrictMode(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
06-23 15:42:19.710: E/StrictMode(638):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-23 15:42:19.710: E/StrictMode(638):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-23 15:42:19.710: E/StrictMode(638):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-23 15:42:19.710: E/StrictMode(638):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-23 15:42:19.710: E/StrictMode(638):  at java.lang.Thread.run(Thread.java:856)
06-23 15:42:19.710: W/ActivityManager(284): Unbind failed: could not find connection for android.os.BinderProxy@40d605b0
06-23 15:42:19.729: E/ActivityThread(638): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d11750 that was originally bound here
06-23 15:42:19.729: E/ActivityThread(638): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d11750 that was originally bound here
06-23 15:42:19.729: E/ActivityThread(638):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
06-23 15:42:19.729: E/ActivityThread(638):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
06-23 15:42:19.729: E/ActivityThread(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
06-23 15:42:19.729: E/ActivityThread(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
06-23 15:42:19.729: E/ActivityThread(638):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
06-23 15:42:19.729: E/ActivityThread(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
06-23 15:42:19.729: E/ActivityThread(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
06-23 15:42:19.729: E/ActivityThread(638):  at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
06-23 15:42:19.729: E/ActivityThread(638):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
06-23 15:42:19.729: E/ActivityThread(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
06-23 15:42:19.729: E/ActivityThread(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
06-23 15:42:19.729: E/ActivityThread(638):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-23 15:42:19.729: E/ActivityThread(638):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-23 15:42:19.729: E/ActivityThread(638):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-23 15:42:19.729: E/ActivityThread(638):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-23 15:42:19.729: E/ActivityThread(638):  at java.lang.Thread.run(Thread.java:856)
06-23 15:42:19.858: E/StrictMode(638): null
06-23 15:42:19.858: E/StrictMode(638): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d11750 that was originally bound here
06-23 15:42:19.858: E/StrictMode(638):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
06-23 15:42:19.858: E/StrictMode(638):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
06-23 15:42:19.858: E/StrictMode(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
06-23 15:42:19.858: E/StrictMode(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
06-23 15:42:19.858: E/StrictMode(638):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
06-23 15:42:19.858: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
06-23 15:42:19.858: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
06-23 15:42:19.858: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
06-23 15:42:19.858: E/StrictMode(638):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
06-23 15:42:19.858: E/StrictMode(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
06-23 15:42:19.858: E/StrictMode(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
06-23 15:42:19.858: E/StrictMode(638):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-23 15:42:19.858: E/StrictMode(638):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-23 15:42:19.858: E/StrictMode(638):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-23 15:42:19.858: E/StrictMode(638):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-23 15:42:19.858: E/StrictMode(638):  at java.lang.Thread.run(Thread.java:856)
06-23 15:42:19.889: W/ActivityManager(284): Unbind failed: could not find connection for android.os.BinderProxy@40db5f30
06-23 15:42:19.889: D/dalvikvm(638): GC_CONCURRENT freed 466K, 20% free 2493K/3080K, paused 75ms+84ms, total 272ms

【问题讨论】:

  • 您的密钥似乎不匹配?或者这只是一个示例
  • 这是我的代码,您在哪里看到未匹配项?
  • 当您执行 putString 时,您使用键“Extra__keyname”,而当您获取字符串时,您仅使用键“keyname”。虽然查看 android bundle 参考,但只有 getString 而不是 getStringExtra。
  • @Faisal 当我将其更改为 getString 时,它会将其标记为错误并告诉我将其设置为 getStringExtra。
  • 哦,我错过了,您使用的是 launchActivity 而不是 b.getString

标签: java android eclipse listview android-activity


【解决方案1】:

发现应该是:

Bundle b = launchActivity.getExtras();

String keyname = b.getString("keyname");
String key = b.getString("key");

你可能需要移除 Extra__

【讨论】:

  • 我的两个字符串“keyname”和“key”没有被使用,在我的第一个活动中“String keyname = title1.getText().toString(); String key = text1.getText()。 toString();" title1 和 text1 被标记错误。 title1 和 text1 是活动二中的两个编辑文本。
  • 我假设您为它分配了值,那么您必须从列表视图项中获取值。最简单的方法是在 listView getView 上分配它: setTag(yourViewHolder);然后 yourViewHolder = (YourViewHolder) arg1.getTag();那么您应该可以访问该标签上的视图。然后像 yourViewHolder.title1.getText().toString(); 一样使用它;
【解决方案2】:

我相信你的问题在这里:

b.putString("Extra__keyname", keyname);
b.putString("Extra__key", key);

这里:

String keyname = launchActivity.getStringExtra("keyname");
String key = launchActivity.getStringExtra("key");

您正在尝试使用您的第一个活动中未使用的字符串检索 StringExtra(您在第二个活动中使用了 "Extra__keyname" and "Extra__key",您必须使用这些特定的字符串,以及作为一个很好的做法)额外的“关键”字符串应该是第一个 Activity 中的公共常量,然后在第二个 Activity 中使用相同的常量来获取 getStringExtra,如下所示:

 public static final String EXTRA_KEY_NAME = "com.example.yourclass.EXTRA_KEY_NAME";

这进入你的第一个活动,然后你把额外的像这样:

 b.putString(EXTRA_KEY_NAME, keyname);

然后在您的第二个活动中,您将获得像这样的 Extra:

 launchActivity.getStringExtra(FirstActivity.EXTRA_KEY_NAME);

这是一种更好的编程术语方法,由谷歌推荐,抱歉我的英语不好,问候。

【讨论】:

  • 我尝试将其放入代码中,但没有成功,但我再次认为我做得不对。
  • 您提供问题的代码位于我指定的those 部分中,也许您的问题不在Bundle 或Intent 部分,而是在将显示数据的ListView 或TextView , 提供完整的第一个和第二个 Activity 代码进行检查。
  • 好的,因为我看到的问题正是我在回答中解释的问题,您试图在第二个活动中检索方法 getStringExtra("keyname") and getStringExtra("key") 的错误字符串,当然它们会从那里变为空Bundle 对象中没有以这些字符串作为键,将这些部分上的第二个 Activity 更改为 getStringExtra("Extra__keyname") and getStringExtra("Extra__key"),另外,尝试阅读有关 Naming Convention in Java 的内容并重新阅读我的答案以了解问题出在哪里以及适当的解决方案。
  • 你能检查一下我上面的第一个和第二个代码框是否正确吗?
  • 我确实检查了那些,你又明白我的回答了吗?我再次重复,如果您在第一个活动b.putString("Extra__keyname", keyname); and b.putString("Extra__key", key); 中执行此操作,那么问题出在哪里,然后要在第二个活动中获取字符串,您必须再次执行String keyname = launchActvity.getStringExtra("Extra__keyname"); String key = launchActvity.getStringExtra("Extra__key");,请让我知道您从我的回答中不明白什么,问候。
【解决方案3】:

将您的第一个活动代码更改为

package android.application.project.planes;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
 import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

 public class MainActivityPlanes extends Activity {

Button Add;
ListView List;

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main_activity_planes);

    Add = (Button) findViewById(R.id.button1);
    List = (ListView) findViewById(R.id.listView1);

    Add.setOnClickListener(new OnClickListener () {

        public void onClick (View v) {
            Intent intent = new Intent (v.getContext(), MainActivityPaper.class);
            startActivityForResult(intent, 0);
        }

    });

    List.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            Intent launchActivity = new Intent(MainActivityPlanes.this, MainActivityPaper.class);

             Bundle b = new Bundle();
             String keyname =                   ((TextView)arg1.findViewById(android.R.id.text1)).getText().toString();
             //String key = text1.getText().toString(); 
             b.putString("Extra__keyname", keyname);
            //b.putString("Extra__key", key);
             launchActivity.putExtras(b);

             startActivity(launchActivity);

        }

    });

    MainActivityChampagne info = new MainActivityChampagne(this);       
    info.open();        
    ArrayList<String> data = info.getData();
    info.close();
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data);
    List.setAdapter(arrayAdapter);

}

}

将您的第二个活动课程更改为

package android.application.project.planes;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;

public class MainActivityPaper extends Activity implements OnClickListener {

TextView text1, title1;
Button save1, update1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main_activity_paper);

    text1 = (TextView) findViewById(R.id.editText1);
    title1 = (TextView) findViewById(R.id.editText3);
    save1 = (Button) findViewById(R.id.button3);
    update1 = (Button) findViewById(R.id.button5);


    Intent launchActvity = getIntent();

    Bundle b = launchActvity.getExtras();

    String keyname = b.getString("Extra__keyname");
   //this string same as b.putString("Extra__keyname", keyname);
   // String key = b.getString("Extra__key");

    TextView title1 = (TextView)findViewById(R.id.editText3);
    TextView text1 = (TextView)findViewById(R.id.editText1);

    title1.setText(keyname);
    //text1.setText(key);

    save1.setOnClickListener(this);
    update1.setOnClickListener(this);

}

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub

    switch (arg0.getId()) {
    case R.id.button3:

        String titles = title1.getText().toString();
        String notes = text1.getText().toString();

        MainActivityChampagne entry = new MainActivityChampagne(MainActivityPaper.this);
        entry.open();
        entry.createEntry(titles, notes);
        entry.close();

        break;

    case R.id.button5:

        String thetitles = title1.getText().toString();
        String thenotes = text1.getText().toString();

        MainActivityChampagne up = new MainActivityChampagne(MainActivityPaper.this);
        up.open();
        up.updateEntry(thetitles, thenotes);
        up.close();

        break;

    }
}

}

【讨论】:

  • 第一个活动中的 text1 和 title1 被标记为错误,提示“此行有多个标记 - 重复的局部变量键名 - 无法解析 title1”
  • 这些是行 String keyname = title1.getText().toString();字符串键 = text1.getText().toString();
  • 它告诉我将 getStringExtra 更改为 getString,当我这样做时,它清除了所有错误和警告,但我不确定这是正确的,因为第一个活动仍然有错误
  • 它仅适用于标题(title1 是editText3 的变量名,即标题框),但我该怎么做才能显示正文(editText1,text1)?
  • 所以使用这个键名并从数据库中获取第二个活动的详细信息
猜你喜欢
  • 2021-12-06
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 2015-07-01
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多