这可能很难解释,但我正在androidstudio中使用java进行一个项目。我不知道如何开始,是否使用sql或不,等等,我字面上只是想一个空白的“页面”的能力,能够键入和可能存储的“笔记”写在它?我试过教程,但他们是一个笔记应用程序作为一个整体,当我只想添加一个笔记部分?我做了一个可怕的想法,我的代码是下面,我已经尝试从一个教程!感谢您的帮助!
白板画在这里哈哈
<EditText
android:layout_width="391dp"
android:layout_height="523dp"
android:hint="Type here..."
android:gravity="top"
android:id="@+id/EditText1"
app:layout_constraintTop_toTopOf="parent"/>
//SAVING FILES BELOW
CS
public void Save(String fileName) {
try {
OutputStreamWriter out =
new OutputStreamWriter(openFileOutput(fileName, 0));
out.write(EditText1.);
out.close();
Toast.makeText(this, "Note Saved!", Toast.LENGTH_SHORT).show();
} catch (Throwable t) {
Toast.makeText(this, "Exception: " + t.toString(), Toast.LENGTH_LONG).show();
}
}
//LOADING FILES CODE BELOW
public boolean FileExists(String fname){
File file = getBaseContext().getFileStreamPath(fname);
return file.exists();
}
//MAIN CODE BELOW
//YOU CAN CHANGE - COULDN'T MAKE JUST ONE SECTION
public class MainActivity extends AppCompatActivity {
EditText EditText1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Save("Note1.txt");
}
});
EditText1 = (EditText) findViewById(R.id.EditText1);
EditText1.setText(Open("Note1.txt"));
}
@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_main, menu);
return true;
}
public void Save(String fileName) {
try {
OutputStreamWriter out =
new OutputStreamWriter(openFileOutput(fileName, 0));
out.write(EditText1.getText().toString());
out.close();
Toast.makeText(this, "Note saved!", Toast.LENGTH_SHORT).show();
} catch (Throwable t) {
Toast.makeText(this, "Exception: " + t.toString(), Toast.LENGTH_LONG).show();
}
}
public String Open(String fileName) {
String content = "";
if (FileExists(fileName)) {
try {
InputStream in = openFileInput(fileName);
if ( in != null) {
InputStreamReader tmp = new InputStreamReader( in );
BufferedReader reader = new BufferedReader(tmp);
String str;
StringBuilder buf = new StringBuilder();
while ((str = reader.readLine()) != null) {
buf.append(str + "\n");
} in .close();
content = buf.toString();
}
} catch (java.io.FileNotFoundException e) {} catch (Throwable t) {
Toast.makeText(this, "Exception: " + t.toString(), Toast.LENGTH_LONG).show();
}
}
return content;
}
public boolean FileExists(String fname) {
File file = getBaseContext().getFileStreamPath(fname);
return file.exists();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
1条答案
按热度按时间ztigrdn81#
根据要存储的数据类型,可能需要使用其他方法。本文详细概述了您拥有的所有数据和文件存储选项。
我猜您可能想存储大数据,因此我认为在您的情况下,最合适和最佳的选择是使用room local perstistence库。
由于您提到了是否使用sql,正如前面提到的文档中所述,room提供了以下好处
sql查询的编译时验证。
方便的注解,最大限度地减少重复和容易出错的样板代码。
优化了数据库迁移路径。
因此,建议您使用roomlibrary,而不是直接使用sqliteapi。