我从Android开发开始,我需要使用setContentView()
关闭onClickListener()
,其中myCurrent
屏幕是在其他布局上展开的布局。
这是我的代码:
public class MainActivity extends Activity {
private SQLiteDatabase myDb;
private String dbPath = "/data/data/com.example.dbapp/databases/testData";
private boolean dbExist(String dbPath){
File fakeDb = new File(dbPath);
return fakeDb.exists();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(!dbExist(dbPath)){
myDb = openOrCreateDatabase(dbPath, MODE_PRIVATE, null);
myDb.execSQL("CREATE TABLE files(cn_userName INTEGER PRIMARY KEY AUTOINCREMENT);");
myDb.close();
}else{
fillDb();
}
}
private void fillDb(){
LinearLayout myScroll = (LinearLayout) findViewById(R.id.idOfmyScroll);
if(myScroll.getChildCount() > 0){
myScroll.removeAllViews();
}
myDb = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READONLY);
Cursor myDbCur = myDb.rawQuery("SELECT * FROM files", null);
for(int i = 0; i < myDbCur.getCount(); i++){
View name = getLayoutInflater().inflate(R.layout.name_list, null);
TextView userName = (TextView)name.findViewById(R.id.idName);
userName.setText(myDbCur.getString(myDbCur.getColumnIndex("cn_userName"));
myScroll.addView(name);
myDbCur.moveToNext();
myDb.close();
name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.otherUserData);
userLastName = (TextView)findViewById(R.id.txtLastName);
nombreContacto.setText(userName + "Her LastName");
}
});
}
}
当我按后退键跳转到activity_main并且我想要膨胀的布局
答案 0 :(得分:1)
听起来你想切换片段?另一种选择是只需要一个framelayout并在需要时将片段放入其中。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/container"
android:layout_height="match_parent"
android:layout_width="match_parent" />
</LinearLayout>
然后你只需用活动中的片段填充该容器。
FragmentManager fm = getSupportFragmentManager();
Fragment myFragment = fm.findFragmentByTag(MyFragment.TAG);
if (myFragment == null) {
myFragment = new MyFragment();
}
fm.beginTransaction().add(R.id.container, myFragment, MyFragment.TAG).commit();
然后在你的onclick中你可以使用fragmenttransaction函数替换而不是add。