- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我点击它时,我在子部分 Activity 中有一个 ListView ,它打开了选项卡式 Activity 。现在,当我按下左上角的向上导航按钮并返回父 Activity 时, ListView 变为空。但是当我按下键盘上的后退按钮时,父 Activity 不会丢失其数据。使用数据库填充 ListView 。
请帮帮我!
SubSectionActivity.java(父 Activity )
package com.suvariyaraj.algorithms;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.ListViewCompat;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.suvariyaraj.algorithms.Database.DBPARAM;
import com.suvariyaraj.algorithms.Database.ExternalDbOpenHelper;
import java.util.ArrayList;
public class SubSectionActivity extends AppCompatActivity {
ListView listView;
String[] array;
private SQLiteDatabase database;
DBPARAM dbparam = new DBPARAM ();
ArrayList<String> titles;
String section;
public static final String MyPREFERENCES = "MyPrefsAlgorithmApp" ;
SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub_section);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Intent i = getIntent();
section = i.getStringExtra("Section");
Toast.makeText(getApplicationContext(), section, Toast.LENGTH_SHORT).show();
sharedPreferences = getSharedPreferences ("myprefAlgoApp", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit ();
editor.putString ("Section",section);
editor.commit ();
ExternalDbOpenHelper dbOpenHelper = new ExternalDbOpenHelper (this, dbparam.DB_NAME);
database = dbOpenHelper.openDataBase();
getDistinctSubSections ();
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.single_list_view_item, titles);
listView = (ListView) findViewById(R.id.subsection_listview);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(getApplicationContext(), AlgorithmActivity.class);
i.putExtra("Subsection", titles.get (position));
i.putExtra ("Section", section);
startActivity (i);
}
});
}
private void getDistinctSubSections() {
titles = new ArrayList<String> ();
Cursor cursor = database.query(true, dbparam.TABLE_NAME, new String[] {dbparam.COLOUMN_SUBSECTION}, dbparam.COLOUMN_SECTION+" = '"+section+"'", null, null, null, null, null);
if(cursor!=null) {
cursor.moveToFirst();
if (!cursor.isAfterLast()) {
do {
String name = cursor.getString(cursor.getColumnIndex(dbparam.COLOUMN_SUBSECTION));
titles.add(name);
} while (cursor.moveToNext());
}
}
cursor.close();
}
}
AlgorithmActivity.java(子 Activity )
package com.suvariyaraj.algorithms;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.design.widget.TabLayout;
import android.support.v4.widget.NestedScrollView;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.getbase.floatingactionbutton.FloatingActionButton;
import com.getbase.floatingactionbutton.FloatingActionsMenu;
import com.suvariyaraj.algorithms.Database.DBPARAM;
import com.suvariyaraj.algorithms.Database.ExternalDbOpenHelper;
import org.w3c.dom.Text;
import java.util.ArrayList;
public class AlgorithmActivity extends AppCompatActivity {
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the sections. We use a
* {@link FragmentPagerAdapter} derivative, which will keep every
* loaded fragment in memory. If this becomes too memory intensive, it
* may be best to switch to a
* {@link android.support.v4.app.FragmentStatePagerAdapter}.
*/
private SectionsPagerAdapter mSectionsPagerAdapter;
private static SQLiteDatabase database;
static DBPARAM dbparam = new DBPARAM ();
ArrayList<String> titles;
static ArrayList<String> array;
static String section;
static String subsection;
/**
* The {@link ViewPager} that will host the section contents.
*/
private ViewPager mViewPager;
String title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_algorithm);
Intent i = getIntent();
subsection = i.getStringExtra("Subsection");
section = i.getStringExtra("Section");
ExternalDbOpenHelper dbOpenHelper = new ExternalDbOpenHelper (this, dbparam.DB_NAME);
database = dbOpenHelper.openDataBase();
//Toast.makeText(getApplicationContext(), title, Toast.LENGTH_SHORT).show();
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container);
if (mViewPager != null) {
mViewPager.setAdapter(mSectionsPagerAdapter);
}
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
if (tabLayout != null) {
tabLayout.setupWithViewPager(mViewPager);
}
FloatingActionButton fab_copy = (FloatingActionButton) findViewById (R.id.fab_copy);
FloatingActionButton fab_share = (FloatingActionButton) findViewById (R.id.fab_share);
FloatingActionButton fab_doubt = (FloatingActionButton) findViewById (R.id.fab_doubt);
final FloatingActionsMenu fab_menu = (FloatingActionsMenu) findViewById (R.id.fab_menu);
if (fab_copy != null) {
fab_copy.setOnClickListener (new View.OnClickListener () {
@Override
public void onClick(View v) {
String s = "C Code : \n"+array.get(1).replace ("~~", "")+ "\n\nJava Code : \n"+array.get(2).replace ("~~", "");
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("Shared Content", s);
clipboard.setPrimaryClip(clip);
Toast.makeText (getApplicationContext (),"Content Copied",Toast.LENGTH_SHORT).show ();
if (fab_menu != null) {
fab_menu.collapse ();
}
}
});
}
if (fab_share != null) {
fab_share.setOnClickListener (new View.OnClickListener () {
@Override
public void onClick(View v) {
String s = "Algorithm Name : "+subsection+"\n\nC Code : \n"+array.get(1).replace ("~~", "")+ "\n\nJava Code : \n"+array.get(2).replace ("~~", "");
if (fab_menu != null) {
fab_menu.collapse ();
}
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, s);
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, "Share using..."));
}
});
}
if (fab_doubt != null) {
fab_doubt.setOnClickListener (new View.OnClickListener () {
@Override
public void onClick(View v) {
Intent i = new Intent (getApplicationContext (), DoubtActivity.class);
i.putExtra ("Title", title);
if (fab_menu != null) {
fab_menu.collapse ();
}
startActivity (i);
}
});
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_algorithm, 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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
//if (item.getItemId() == android.R.id.home) {
// onBackPressed ();
//}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
private static final String ARG_SECTION_NUMBER = "section_number";
public PlaceholderFragment() {
}
/**
* Returns a new instance of this fragment for the given section
* number.
*/
public static PlaceholderFragment newInstance(int sectionNumber) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_algorithm, container, false);
TextView textView = (TextView) rootView.findViewById(R.id.section_label);
array = new ArrayList<String> ();
array.add ("Hi from description");
array.add ("Hi from C");
array.add ("Hi from JAVA");
getInformation ();
NestedScrollView scrollView = (NestedScrollView) rootView.findViewById(R.id.abcscrollView);
LinearLayout linearLayout = new LinearLayout (rootView.getContext ());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
linearLayout.setLayoutParams (params);
params.bottomMargin=10;
linearLayout.setOrientation (LinearLayout.VERTICAL);
if(getArguments().getInt(ARG_SECTION_NUMBER)-1==0) {
String temparray[] = array.get(0).split("~~");
//array.set (0, "");
for (int i = 0; i < temparray.length; i++) {
if (temparray[i].startsWith("Image:")) {
ImageView iv = new ImageView(rootView.getContext());
iv.setId(i+1);
int itd = this.getResources().getIdentifier(temparray[i].substring(6), "drawable", getActivity().getPackageName());
iv.setImageResource(itd);
linearLayout.addView (iv);
} else {
TextView tv = new TextView(rootView.getContext());
tv.setText(temparray[i]);
tv.setTextSize (24);
tv.setId(i+1);
linearLayout.addView (tv);
}
}
}
if(getArguments().getInt(ARG_SECTION_NUMBER)-1==1) {
String temparray[] = array.get(1).toString ().split("~~");
for (int i = 0; i < temparray.length; i++) {
if (temparray[i].startsWith("Output:")) {
TextView tv = new TextView(rootView.getContext());
tv.setText(temparray[i]);
//tv.setTextSize (24);
tv.setId(i+100);
tv.setBackgroundColor (Color.GRAY);
linearLayout.addView (tv,params);
} else if (temparray[i].startsWith("Input:")) {
TextView tv = new TextView (rootView.getContext ());
tv.setText (temparray[i]);
//tv.setTextSize (24);
tv.setId (i+100);
tv.setBackgroundColor (Color.GRAY);
linearLayout.addView (tv, params);
}else {
if (temparray[i].trim ().equals ("")){
continue;
}
TextView tv = new TextView(rootView.getContext());
tv.setText(temparray[i].trim ());
//tv.setTextSize (24);
tv.setId(i+100);
linearLayout.addView (tv);
}
}
}
if(getArguments().getInt(ARG_SECTION_NUMBER)-1==2) {
String temparray[] = array.get(2).toString ().split("~~");
//array.set (2, "");
for (int i = 0; i < temparray.length; i++) {
if (temparray[i].startsWith("Output:")) {
TextView tv = new TextView(rootView.getContext());
tv.setText(temparray[i]);
//tv.setTextSize (24);
tv.setId(i+100);
tv.setBackgroundColor (Color.GRAY);
linearLayout.addView (tv,params);
} else if (temparray[i].startsWith("Input:")) {
TextView tv = new TextView (rootView.getContext ());
tv.setText (temparray[i]);
//tv.setTextSize (24);
tv.setId (i+100);
tv.setBackgroundColor (Color.GRAY);
linearLayout.addView (tv, params);
}else {
if (temparray[i].trim ().equals ("")){
continue;
}
TextView tv = new TextView(rootView.getContext());
tv.setText(temparray[i].trim ());
//tv.setTextSize (24);
tv.setId(i+100);
linearLayout.addView (tv);
}
}
}
NestedScrollView.LayoutParams params2 = new NestedScrollView.LayoutParams (NestedScrollView.LayoutParams.MATCH_PARENT, NestedScrollView.LayoutParams.MATCH_PARENT);
scrollView.addView (linearLayout,params2);
//textView.setText (array.get(getArguments ().getInt (ARG_SECTION_NUMBER) - 1));
return rootView;
}
private void getInformation() {
Cursor cursor = database.query(true, dbparam.TABLE_NAME, new String[] {dbparam.COLOUMN_DESCRIPTION, dbparam.COLOUMN_CODEC, dbparam.COLOUMN_CODEJAVA}, dbparam.COLOUMN_SECTION+"='"+section+"' AND "+dbparam.COLOUMN_SUBSECTION+"='"+subsection+"'", null, null, null, null, null);
if(cursor!=null) {
cursor.moveToFirst();
if (!cursor.isAfterLast()) {
do {
String discription = cursor.getString(cursor.getColumnIndex(dbparam.COLOUMN_DESCRIPTION));
array.set(0, discription);
String codeC = cursor.getString(cursor.getColumnIndex(dbparam.COLOUMN_CODEC));
array.set(1, codeC);
String codeJAVA = cursor.getString(cursor.getColumnIndex(dbparam.COLOUMN_CODEJAVA));
array.set(2, codeJAVA);
} while (cursor.moveToNext());
}
cursor.close();
}
}
}
/**
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
return PlaceholderFragment.newInstance(position + 1);
}
@Override
public int getCount() {
// Show 3 total pages.
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Description";
case 1:
return "C";
case 2:
return "Java";
}
return null;
}
}
}
最佳答案
这可能会解决您的问题
将其放入您的 AlgorithmActivity.java 并删除您的代码。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
关于android - 父 Activity 在调用 onBackPressed() 时丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37642676/
初学者 android 问题。好的,我已经成功写入文件。例如。 //获取文件名 String filename = getResources().getString(R.string.filename
我已经将相同的图像保存到/data/data/mypackage/img/中,现在我想显示这个全屏,我曾尝试使用 ACTION_VIEW 来显示 android 标准程序,但它不是从/data/dat
我正在使用Xcode 9,Swift 4。 我正在尝试使用以下代码从URL在ImageView中显示图像: func getImageFromUrl(sourceUrl: String) -> UII
我的 Ubuntu 安装 genymotion 有问题。主要是我无法调试我的数据库,因为通过 eclipse 中的 DBMS 和 shell 中的 adb 我无法查看/data/文件夹的内容。没有显示
我正在尝试用 PHP 发布一些 JSON 数据。但是出了点问题。 这是我的 html -- {% for x in sets %}
我观察到两种方法的结果不同。为什么是这样?我知道 lm 上发生了什么,但无法弄清楚 tslm 上发生了什么。 > library(forecast) > set.seed(2) > tts lm(t
我不确定为什么会这样!我有一个由 spring data elasticsearch 和 spring data jpa 使用的类,但是当我尝试运行我的应用程序时出现错误。 Error creatin
在 this vega 图表,如果我下载并转换 flare-dependencies.json使用以下 jq 到 csv命令, jq -r '(map(keys) | add | unique) as
我正在提交一个项目,我必须在其中创建一个带有表的 mysql 数据库。一切都在我这边进行,所以我只想检查如何将我所有的压缩文件发送给使用不同计算机的人。基本上,我如何为另一台计算机创建我的数据库文件,
我有一个应用程序可以将文本文件写入内部存储。我想仔细看看我的电脑。 我运行了 Toast.makeText 来显示路径,它说:/数据/数据/我的包 但是当我转到 Android Studio 的 An
我喜欢使用 Genymotion 模拟器以如此出色的速度加载 Android。它有非常好的速度,但仍然有一些不稳定的性能。 如何从 Eclipse 中的文件资源管理器访问 Genymotion 模拟器
我需要更改 Silverlight 中文本框的格式。数据通过 MVVM 绑定(bind)。 例如,有一个 int 属性,我将 1 添加到 setter 中的值并调用 OnPropertyChanged
我想向 Youtube Data API 提出请求,但我不需要访问任何用户信息。我只想浏览公共(public)视频并根据搜索词显示视频。 我可以在未经授权的情况下这样做吗? 最佳答案 YouTube
我已经设置了一个 Twilio 应用程序,我想向人们发送更新,但我不想回复单个文本。我只是想让他们在有问题时打电话。我一切正常,但我想在发送文本时显示传入文本,以确保我不会错过任何问题。我正在使用 p
我有一个带有表单的网站(目前它是纯 HTML,但我们正在切换到 JQuery)。流程是这样的: 接受用户的输入 --- 5 个整数 通过 REST 调用网络服务 在服务器端运行一些计算...并生成一个
假设我们有一个名为 configuration.js 的文件,当我们查看内部时,我们会看到: 'use strict'; var profile = { "project": "%Projec
这部分是对 Previous Question 的扩展我的: 我现在可以从我的 CI Controller 成功返回 JSON 数据,它返回: {"results":[{"id":"1","Sourc
有什么有效的方法可以删除 ios 中 CBL 的所有文档存储?我对此有疑问,或者,如果有人知道如何从本质上使该应用程序像刚刚安装一样,那也会非常有帮助。我们正在努力确保我们的注销实际上将应用程序设置为
我有一个 Rails 应用程序,它与其他 Rails 应用程序通信以进行数据插入。我使用 jQuery $.post 方法进行数据插入。对于插入,我的其他 Rails 应用程序显示 200 OK。但在
我正在为服务于发布请求的 API 调用运行单元测试。我正在传递请求正文,并且必须将响应作为帐户数据返回。但我只收到断言错误 注意:数据是从 Azure 中获取的 spec.js const accou
我是一名优秀的程序员,十分优秀!