Итак, я пытаюсь создать приложение, в котором вы можете написать пост о крутой машине, которую видите. Когда вы создаете сообщение, мое приложение отправляет все подробности на сервер синтаксического анализа Bitnami (например, производитель, модель и т. Д.). Я хотел бы создать канал для сообщений. Для каждого поста я хочу свой линейный макет, где будет текстовое представление для всех этих деталей (производитель и т. Д.), А затем отобразить его в ленте. Каков будет лучший способ сделать это?
Мне также было интересно, как я могу загружать только несколько десятков сообщений одновременно, чтобы приложение не становилось слишком медленным? Похоже на Instagram, где они загружают больше постов, когда вы прокрутите достаточно. Я знаю, как получать сообщения с сервера с помощью parseQuery, но не знаю, как загружать больше, когда пользователь прокручивает достаточно.
Я уже выполнил задание, в котором отправляю информацию о споте на серверный класс с именем "Spots" и всю информацию на него. Затем приложение перенаправляет пользователя на фид спотов, где сообщение должно отображаться в макете со всей информацией в их собственных текстовых представлениях. Этот последний бит - часть, которую я не знаю, как сделать. Приложение получит время и время самостоятельно, и я знаю, как это сделать, но я еще этого не сделал.
Это код, который отправляет все подробности о посте:
public class UploadSpot extends AppCompatActivity {
EditText manufacturerET;
EditText modelET;
EditText detailsET;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upload_spot);
manufacturerET = (EditText)findViewById(R.id.manufacturerET);
modelET = (EditText)findViewById(R.id.modelET);
detailsET = (EditText)findViewById(R.id.detailsET);
}
public void upload(View v)
{
if(manufacturerET.getText().toString().matches("") || modelET.getText().toString().matches("") ||
detailsET.getText().toString().matches(""))
{
Toast.makeText(this, "Please fill all three sections", Toast.LENGTH_SHORT).show();
}
else
{
final ParseObject spot = new ParseObject("Spots");
spot.put("username", ParseUser.getCurrentUser().getUsername().toString());
spot.put("manufacturer", manufacturerET.getText().toString());
spot.put("model", modelET.getText().toString());
spot.put("details", detailsET.getText().toString());
spot.saveInBackground(new SaveCallback()
{
@Override
public void done(ParseException e)
{
if(e == null)
{
Toast.makeText(UploadSpot.this, "Spot uploaded!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(), spotting.class);
startActivity(intent);
}
else
{
Toast.makeText(UploadSpot.this, "Spot could not be uploaded, please try again later", Toast.LENGTH_LONG).show();
}
}
});
}
}
public void goBack(View v)
{
Intent intent = new Intent(getApplicationContext(), spotting.class);
startActivity(intent);
}
}
И я бы хотел, чтобы шаблон сообщения выглядел так:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"
android:background="@drawable/spots_background"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/manuAndModelTV"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:fontFamily="serif-monospace"
android:text="Manufacturer + Model"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/detailsTV"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:text="Here would be the details abot the car"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/manuAndModelTV" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="80dp"
android:background="@android:color/black" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/spottersUsernameTV"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="username"
android:textAlignment="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/timeTV" />
<TextView
android:id="@+id/placeTV"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="palce"
android:textAlignment="center"
app:layout_constraintBottom_toTopOf="@+id/timeTV"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/timeTV"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="time"
android:textAlignment="center"
app:layout_constraintBottom_toTopOf="@+id/spottersUsernameTV"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/placeTV" />
</LinearLayout>
</LinearLayout>